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#程序设计有所帮助。