首页 > 编程 > C# > 正文

C#创建数据库及导入sql脚本的方法

2020-01-24 01:20:24
字体:
来源:转载
供稿:网友

本文实例讲述了C#创建数据库及导入sql脚本的方法。分享给大家供大家参考,具体如下:

C#创建数据库:

/// <summary>/// 创建数据库/// </summary>/// <param name="connStr">连接字符串</param>/// <param name="_strDBName">数据库名称</param>/// <returns></returns>private static bool CreateDatabase(string connStr, string _strDBName){  bool bSuccess = false;  try  {    using (SqlConnection conMaster = new SqlConnection(connStr))    {      conMaster.Open();      // Check if the Database has existed first      string strExist = @"select * from dbo.sysdatabases where name='" + _strDBName + @"'";      SqlCommand cmdExist = new SqlCommand(strExist, conMaster);      SqlDataReader readerExist = cmdExist.ExecuteReader();      bool bExist = readerExist.HasRows;      readerExist.Close();      if (bExist)      {        string strDel = @"drop database " + _strDBName;        SqlCommand cmdDel = new SqlCommand(strDel, conMaster);        cmdDel.ExecuteNonQuery();      }      // Create the database now;           string strDatabase = "Create Database [" + _strDBName + "]";      SqlCommand cmdCreate = new SqlCommand(strDatabase, conMaster);      cmdCreate.ExecuteNonQuery();      conMaster.Close();    }    bSuccess = true;  }  catch (Exception e)  {    throw e;  }  return bSuccess;}

C#导入sql脚本:

/// <summary>/// 导入sql脚本/// </summary>/// <param name="sqlConnString">连接数据库字符串</param>/// <param name="varFileName">脚本路径</param>/// <returns></returns>private static bool ExecuteSqlFile(string sqlConnString, string varFileName){  if (!File.Exists(varFileName))  {    return false;  }  StreamReader rs = new StreamReader(varFileName, System.Text.Encoding.Default);  ArrayList alSql = new ArrayList();  string commandText = "";  string varLine = "";  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);    return true;  }  catch (Exception ex)  {    throw ex;  }}private static void ExecuteCommand(string sqlConnString, ArrayList varSqlList){ using (SqlConnection conn = new SqlConnection(sqlConnString)) {  conn.Open();  //Don't use Transaction, because some commands cannot execute in one Transaction.  //SqlTransaction varTrans = conn.BeginTransaction();  SqlCommand command = new SqlCommand();  command.Connection = conn;  //command.Transaction = varTrans;  try  {   foreach (string varcommandText in varSqlList)   {    command.CommandText = varcommandText;    command.ExecuteNonQuery();   }   //varTrans.Commit();  }  catch (Exception ex)  {   //varTrans.Rollback();   throw ex;  }  finally  {   conn.Close();  } }}

希望本文所述对大家C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表