C#创建数据库及导入sql脚本的方法
本文实例讲述了C#创建数据库及导入sql脚本的方法。分享给大家供大家参考,具体如下:
C#创建数据库:
///<summary> ///创建数据库 ///</summary> ///<paramname="connStr">连接字符串</param> ///<paramname="_strDBName">数据库名称</param> ///<returns></returns> privatestaticboolCreateDatabase(stringconnStr,string_strDBName) { boolbSuccess=false; try { using(SqlConnectionconMaster=newSqlConnection(connStr)) { conMaster.Open(); //CheckiftheDatabasehasexistedfirst stringstrExist=@"select*fromdbo.sysdatabaseswherename='"+_strDBName+@"'"; SqlCommandcmdExist=newSqlCommand(strExist,conMaster); SqlDataReaderreaderExist=cmdExist.ExecuteReader(); boolbExist=readerExist.HasRows; readerExist.Close(); if(bExist) { stringstrDel=@"dropdatabase"+_strDBName; SqlCommandcmdDel=newSqlCommand(strDel,conMaster); cmdDel.ExecuteNonQuery(); } //Createthedatabasenow; stringstrDatabase="CreateDatabase["+_strDBName+"]"; SqlCommandcmdCreate=newSqlCommand(strDatabase,conMaster); cmdCreate.ExecuteNonQuery(); conMaster.Close(); } bSuccess=true; } catch(Exceptione) { throwe; } returnbSuccess; }
C#导入sql脚本:
///<summary> ///导入sql脚本 ///</summary> ///<paramname="sqlConnString">连接数据库字符串</param> ///<paramname="varFileName">脚本路径</param> ///<returns></returns> privatestaticboolExecuteSqlFile(stringsqlConnString,stringvarFileName) { if(!File.Exists(varFileName)) { returnfalse; } StreamReaderrs=newStreamReader(varFileName,System.Text.Encoding.Default); ArrayListalSql=newArrayList(); stringcommandText=""; stringvarLine=""; while(rs.Peek()>-1) { varLine=rs.ReadLine(); if(varLine=="") { continue; } if(varLine!="GO") { commandText+=varLine; commandText+="\r\n"; } else { commandText+=""; } } alSql.Add(commandText); rs.Close(); try { ExecuteCommand(sqlConnString,alSql); returntrue; } catch(Exceptionex) { throwex; } } privatestaticvoidExecuteCommand(stringsqlConnString,ArrayListvarSqlList) { using(SqlConnectionconn=newSqlConnection(sqlConnString)) { conn.Open(); //Don'tuseTransaction,becausesomecommandscannotexecuteinoneTransaction. //SqlTransactionvarTrans=conn.BeginTransaction(); SqlCommandcommand=newSqlCommand(); command.Connection=conn; //command.Transaction=varTrans; try { foreach(stringvarcommandTextinvarSqlList) { command.CommandText=varcommandText; command.ExecuteNonQuery(); } //varTrans.Commit(); } catch(Exceptionex) { //varTrans.Rollback(); throwex; } finally { conn.Close(); } } }
希望本文所述对大家C#程序设计有所帮助。