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

作者:思齐_ 时间:2024-01-23 04:08:04 

本文实例讲述了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#程序设计有所帮助。

标签:C#,数据库,sql
0
投稿

猜你喜欢

  • MySQL的root帐户密码重置方法

    2007-08-24 15:53:00
  • HTML标签tbody的用法

    2009-11-02 10:11:00
  • Python pygame实现中国象棋单机版源码

    2021-04-15 05:34:16
  • Python超简单分析评论提取关键词制作精美词云流程

    2021-07-27 22:00:41
  • JavaScript 箭头函数的特点、与普通函数的区别

    2024-05-02 17:30:45
  • Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块

    2022-08-07 23:03:11
  • golang实现跨域访问的方法

    2024-02-15 18:33:31
  • python绘制浅色范围曲线的示例代码

    2021-07-03 02:34:10
  • 使用SQL Server 2008管理非结构化数据

    2009-01-08 15:28:00
  • Django如何简单快速实现PUT、DELETE方法

    2021-04-14 17:53:07
  • Python语言实现获取主机名根据端口杀死进程

    2023-07-01 10:05:58
  • python3安装OCR识别库tesserocr过程图解

    2021-12-08 04:50:08
  • 详解python列表生成式和列表生成式器区别

    2021-09-13 16:15:14
  • Golang多线程排序实现快速高效地处理大规模数据

    2024-04-27 15:32:29
  • JS与CSS合并写在同一份文件

    2010-01-23 12:33:00
  • SQL SERVER数据操作类代码

    2012-07-11 16:16:12
  • 使用phpMyAdmin修改MySQL数据库root用户密码的方法

    2023-11-20 02:12:13
  • Vue侦测相关api的实现方法

    2024-05-09 09:52:46
  • 轻松掌握python设计模式之访问者模式

    2023-06-30 13:46:39
  • js生成随机数(指定范围)的实例代码

    2024-04-17 10:29:42
  • asp之家 网络编程 m.aspxhome.com