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

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

(0)

相关推荐

  • Excel导入Sqlserver数据库脚本

    受以前旧同事之托,在博客里发这段脚本: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure SELECT * INTO tmp_asset FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=d:\Excel数据源\资产印章.xls', 'SE

  • MySQL从命令行导入SQL脚本时出现中文乱码的解决方法

    本文实例讲述了MySQL从命令行导入SQL脚本时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 在图形界面管理工具 MySql Query Browser中打开脚本(脚本包括建库.建表.添加数据),并执行,不会有任何问题:但是使用mysql命令行工具执行建库脚本时,添加数据中如果包含中文,存入的数据就是乱码或是???... 解决方法1:在MySql安装目录下找到my.ini,将[mysql]下的default-character-set=latin1改为default-characte

  • 利用SQL脚本导入数据到不同数据库避免重复的3种方法

    前言 相信大家都有所体会,无论何种语言,一旦看见代码中有重复性的代码则想到封装来复用,在SQL同样如此,若我们没有界面来维护而且需要经常进行的操作,我们会写脚本避免下次又得重新写一遍,但是这其中就涉及到一个问题,这个问题我开始也没太在意,直到某时某刻,老大看到我写的脚本后笑着问了一句,你的脚本可否重复执行,我懵逼了,很显然不能,如果不能避免这种情况发生,比如进行插入操作,当下次其他同事来执行其脚本时可能会插入重复数据,如果是在线上那就傻逼了,所以老大又给我上了一课,从此之后每次写脚本都加逻辑判断

  • MySQL导入sql脚本错误:2006 解决方法

    MySQL导入sql脚本错误:2006 - MySQL server has gone away 到如一些小脚本很少报错,但最近导入一个10+M的SQL脚本,却重复报错: Error occured at:2014-03-24 11:42:24 Line no.:85 Error Code: 2006 - MySQL server has gone away 最终找到原因,原来是MySQL导入大批量数据的时候超出了默认允许最大的数据包所以就提示2006 - MySQL server has go

  • PHP处理SQL脚本文件导入到MySQL的代码实例

    复制代码 代码如下: <?php // Name of the file$filename = 'churc.sql';// MySQL host$mysql_host = 'localhost';// MySQL username$mysql_username = 'root';// MySQL password$mysql_password = '';// Database name$mysql_database = 'dump'; // Connect to MySQL servermys

  • 关于sql脚本导入Oracle时重复生成check约束的问题解决

    前言 最近在工作中一位细心的同事发现产品的全量sql脚本中有一些重复的check约束检查,就像下图这样的 重复脚本 怪异之处还在于,每次执行一遍该脚本,然后导出脚本,在导出脚本中重复的次数就会增加一遍.通过navicat,最终确认每导入一次就会新增加一条重复的check约束,如下图所示 navicat 这个全量脚本是直接从数据库中导出的,为了方便导入其他的Oracle数据库中,从产品的出货库导出时手动去掉了服务名.双引号. 通过如下步骤可复现该问题: 1.创建表 CREATE TABLE PD_

  • t-sql/mssql用命令行导入数据脚本的SQL语句示例

    osql简单用法:用来将本地脚本执行,适合sql脚本比较大点的情况,执行起来比较方便 复制代码 代码如下: osql -S serverIP -U sa -P 123 -i C:\script.sql serverIP数据库实例所在ip地址或服务器名称 sa是用户 123是密码 c:\script.sql是要导入的脚本

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

    本文实例讲述了C#创建数据库及导入sql脚本的方法.分享给大家供大家参考,具体如下: C#创建数据库: /// <summary> /// 创建数据库 /// </summary> /// <param name="connStr">连接字符串</param> /// <param name="_strDBName">数据库名称</param> /// <returns></r

  • 使用navicat 8实现创建数据库和导入数据 管理用户与权限[图文方法]

    下面看图使用该工具创建数据库和导入数据.navicat 8 下载地址 1 2 3 4 5 6 7 8 9 10 11 12.教程完毕. 2,管理建立用户和分配用户权限 在这里,我们可以发现root是MySQL最高级别权限的用户,它拥有查看.修改和删除MySQL软件中所有数据库的权限.当需要有多个数据库,并且分配给不同的用户使用,多个用户之间只有查看自己对应数据库的权限,不相互干扰,那么需要怎么做呢? 答案很简单,建立多个数据库和用户,给用户设置管理指定数据库的权限.操作方法如下: 鼠标右键点击"

  • java使用JDBC动态创建数据表及SQL预处理的方法

    本文实例讲述了java使用JDBC动态创建数据表及SQL预处理的方法.分享给大家供大家参考,具体如下: 这两天由于公司的需求,客户需要自定义数据表的字段,导致每张表的字段都不是固定的而且很难有一个通用的模板去维护,所以就使用JDBC动态去创建数据表,然后通过表的字段动态添加数据,数据的来源主要是用户提供的Excel直接导入到数据库中. 如果考虑到字段的类型,可以通过反射的机制去获取,现在主要用户需求就是将数据导入到数据库提供查询功能,不能修改,所以就直接都使用String类型来处理数据更加便捷.

  • Pandas直接读取sql脚本的方法

    之前有群友反应同事给了他一个几百MB的sql脚本,导入数据库再从数据库读取数据有点慢,想了解下有没有可以直接读取sql脚本到pandas的方法. 解析sql脚本文本文件替换成csv格式并加载 我考虑了一下sql脚本也就只是一个文本文件而已,而且只有几百MB,现代的机器足以把它一次性全部加载到内存中,使用python来处理也不会太慢. 我简单研究了一下sql脚本的导出格式,并根据格式写出了以下sql脚本的读取方法. 注意:该读取方法只针对SQLyog导出的mysql脚本测试,其他数据库可能代码需要

  • 在linux命令下导出导入.sql文件的方法

    本文讲述了在linux命令下导出导入.sql文件的方法.分享给大家供大家参考,具体如下: 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql 敲回车后会提示输入密码 2.只导出表结构 mysqldump -u用户名 -p密码 -d 数据库名 >

  • Python读取excel指定列生成指定sql脚本的方法

    需求 最近公司干活,收到一个需求,说是让手动将数据库查出来的信息复制粘贴到excel中,在用excel中写好的公式将指定的两列数据用update这样的语句替换掉. 例如: 有个A库,其中有两个A.01和A.02字段,需要将这两个字段替换到下面的sql语句中, update A set A.01 = 'excel第一列的值' where A.02 = 'excel第二列的值' 虽然excel中公式写好了,但是还需要将总计的那行复制粘贴到txt文档中,所以索性太麻烦,果断用Python写了一个自动化

  • 使用navicat导入sql文件的方法步骤

    一.打开navicat,打开连接,右击连接名(如果新建连接,需要使用对应数据库的ip地址和密码,本机的是地址localhost,密码是自己mysql数据库的密码),选择新建数据库,数据库名要和想要导入的文件名一样(这种情况针对的是sql文件是直接由整个数据库导出的一个sql文件,如果表导出的sql文件,应该是随便命名数据库的名字,表名应该是和需要导入的文件名字相同(第二种情况没有亲自试过)). 二.右击建好的数据库,选择运行SQL文件,在出现的页面中选择要导入的SQL文件.然后点击开始,等待导入

  • Navicat Premium如何导入SQL文件的方法步骤

    今天开始写期末项目,不过今年用的MySQL数据库,所以就用了Navicat premium进行管理,数据库是另一个小伙伴写的,需要导入,但是Navicat没有直接导入SQL文件的按钮,尝试了几次,都不行,查了度娘,好多都文不对题,最后终于解决,写一下解决方案,原来很简单.... 1.首先,链接上Navicat,在链接下新建数据库,数据库名和要导入的一样,字符集选utf-8,确定 2.先右键点击打开数据库,然后,直接将数据库文件拖拽到新建的数据库上 3.弹出这个对话框,直接点击开始,完成后.然后直

  • C#实现连接SQL Server2012数据库并执行SQL语句的方法

    本文实例讲述了C#实现连接SQL Server2012数据库并执行SQL语句的方法.分享给大家供大家参考,具体如下: 开发工具:Visual Studio 2012 数据库: SQL Server 2012 使用Visual Studio时还是直接和微软自家的SQL Server数据库连接比较方便,就像使用Eclipse时和MySQL连接便捷一样的道理 无论使用什么工具步骤都一样: 1. 首先保证相关工具都已经正确安装了 2. 开启数据库连接服务 3. 在开发工具中通过用户名和口令与数据库进行关

随机推荐