筆者好久沒有寫隨筆了這次是遇到提出這樣的問題不用附加數據庫什麼修改nfig什麼的那麼麻煩而是直接運行一個頁面然後根據向導一步一步引導用戶安裝生成數據庫那麼這樣做就需要一個創建數據庫的語句和創建這些數據庫表的語句還有這些創建數據庫視圖以及函數的語句創建數據庫語句好辦
IF Not EXISTS (select name from masterdbosysdatabases where name = N + DataBaseName+ ) CREATE DATABASE + DataBaseName
Use [ + DataBaseName+ ];
在中的cs文件中像執行sql語句一樣執行就行了
那麼創建數據庫的語句怎麼得到呢?一個方法是設計數據庫的文件中直接生成另外一個方法從現有的數據庫中獲得選取數據庫點擊反鍵如圖
然後選擇任務的生成腳本
下面彈出來的對話框中的選擇筆者相信大家都會按照自己所需選擇不知道的就不要管了但是要注意這個頁面
首先這裡只選擇表因為僅僅是需要表的執行語句那麼可以生成一個sql文件筆者這裡命名為:CreateTablesql
那麼我們只用在cs文件中讀取CreateTablesql中的字符串即可像sql語句一樣執行
StreamReader strRead = FileOpenText(D:\\CareateTablesql);
string strContent= strRead ReadToEnd();
strRead Close();
SqlConnection con=new SqlConnection();
con=連接數據庫字符串;
SqlCommond com=new SqlCommond();
comConnection=con;
comCommandTest=strContent;
comCommandType = CommandTypeText;
conOpen();
try
{
conExecuteNonQuery();
}
catch (Exception ex)
{
}
finally
{
connClose();
}
那麼會發現報錯就是go語句附近有錯誤可以利用word替換go成那麼在運行程序就發現數據庫表也就創建出來了
那麼可能會遇到這種情況數據庫包含存儲過程視圖函數等這就是筆者遇到的情況那麼此時就需要在那個特別的圖上全選然而筆者照上面的做總是會報錯但是在sql裡執行就沒有報錯最終也終於解決該問題
Process sqlprocess = new Process();
sqlprocessStartInfoFileName = osqlexe;
//U為用戶名P為密碼S為目標服務器的ipinfile為數據庫腳本所在的路徑
sqlprocessStartInfoArguments = StringFormat(U {} P {} S {} i {} d {}
sa asd D:\\CreateTablesqlDataBaseName);
sqlprocessStart();
//等待程序執行Sql腳本
sqlprocessWaitForExit();
sqlprocessClose();
ResponseWrite(<script>alert(Ok);</script>);
這樣在中就可以調用sql文件了
From:http://tw.wingwit.com/Article/program/net/201311/12918.html