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