C#創(chuàng)建數(shù)據(jù)庫及導(dǎo)入sql腳本的方法
更新時(shí)間:2015年12月10日 14:59:24 作者:思齊_
這篇文章主要介紹了C#創(chuàng)建數(shù)據(jù)庫及導(dǎo)入sql腳本的方法,涉及C#針對(duì)數(shù)據(jù)庫的創(chuàng)建、連接、導(dǎo)入等相關(guān)操作技巧,需要的朋友可以參考下
本文實(shí)例講述了C#創(chuàng)建數(shù)據(jù)庫及導(dǎo)入sql腳本的方法。分享給大家供大家參考,具體如下:
C#創(chuàng)建數(shù)據(jù)庫:
/// <summary>
/// 創(chuàng)建數(shù)據(jù)庫
/// </summary>
/// <param name="connStr">連接字符串</param>
/// <param name="_strDBName">數(shù)據(jù)庫名稱</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#導(dǎo)入sql腳本:
/// <summary>
/// 導(dǎo)入sql腳本
/// </summary>
/// <param name="sqlConnString">連接數(shù)據(jù)庫字符串</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();
}
}
}
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#?委托與?Lambda?表達(dá)式轉(zhuǎn)換機(jī)制及弱事件模式下的生命周期詳解
本文介紹了C#委托和Lambda表達(dá)式的工作原理,包括委托的內(nèi)部結(jié)構(gòu)、Lambda表達(dá)式的轉(zhuǎn)換機(jī)制以及弱事件模式下的生命周期管理,感興趣的朋友一起看看吧2025-02-02
C#中序列化實(shí)現(xiàn)深拷貝,實(shí)現(xiàn)DataGridView初始化刷新的方法
下面小編就為大家?guī)硪黄狢#中序列化實(shí)現(xiàn)深拷貝,實(shí)現(xiàn)DataGridView初始化刷新的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
Quartz.Net任務(wù)和觸發(fā)器實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Quartz.Net任務(wù)和觸發(fā)器實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
這篇文章主要介紹了C#打開和關(guān)閉可執(zhí)行文件,以QQ應(yīng)用程序?yàn)槔?,需要的朋友可以參考?/div> 2015-12-12
C#中后臺(tái)post請(qǐng)求常用的兩種方式總結(jié)
這篇文章主要介紹了C#中后臺(tái)post請(qǐng)求常用的兩種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06最新評(píng)論

