轉(zhuǎn)帖|其它|編輯:郝浩|2010-11-17 16:47:45.000|閱讀 566 次
概述:最近遇到提出這樣的問題“不用附加數(shù)據(jù)庫,什么修改web.config什么的那么麻煩,而是直接運(yùn)行一個(gè)頁面,然后根據(jù)向?qū)б徊揭徊揭龑?dǎo)用戶安裝生成數(shù)據(jù)庫”那么這樣做就需要一個(gè)創(chuàng)建數(shù)據(jù)庫的語句和創(chuàng)建這些數(shù)據(jù)庫表的語句,還有這些創(chuàng)建數(shù)據(jù)庫視圖以及函數(shù)的語句。創(chuàng)建數(shù)據(jù)庫語句好辦
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
最近遇到提出這樣的問題“不用附加數(shù)據(jù)庫,什么修改web.config什么的那么麻煩,而是直接運(yùn)行一個(gè)頁面,然后根據(jù)向?qū)б徊揭徊揭龑?dǎo)用戶安裝生成數(shù)據(jù)庫”那么這樣做就需要一個(gè)創(chuàng)建數(shù)據(jù)庫的語句和創(chuàng)建這些數(shù)據(jù)庫表的語句,還有這些創(chuàng)建數(shù)據(jù)庫視圖以及函數(shù)的語句。創(chuàng)建數(shù)據(jù)庫語句好辦
"IF Not EXISTS (select name from master.dbo.sysdatabases where name = N'" + DataBaseName+ "') CREATE DATABASE " + DataBaseName"Use [" + DataBaseName+ "];"
在asp.net中的cs文件中像執(zhí)行sql語句一樣執(zhí)行就行了。那么創(chuàng)建數(shù)據(jù)庫的語句怎么得到呢?一個(gè)方法是設(shè)計(jì)數(shù)據(jù)庫的文件中直接生成,另外一個(gè)方法從現(xiàn)有的數(shù)據(jù)庫中獲得。選取數(shù)據(jù)庫點(diǎn)擊反鍵如圖
然后選擇任務(wù)的生成腳本
下面彈出來的對話框中的選擇筆者相信大家都會(huì),按照自己所需選擇,不知道的就不要管了。但是要注意這個(gè)頁面
首先這里只選擇表,因?yàn)閮H僅是需要表的執(zhí)行語句。那么可以生成一個(gè).sql文件。筆者這里命名為:CreateTable.sql,那么我們只用在cs文件中讀取CreateTable.sql中的字符串即可像sql語句一樣執(zhí)行
StreamReader strRead = File.OpenText("D:\\CareateTable.sql");
string strContent= strRead .ReadToEnd();
strRead .Close();
SqlConnection con=new SqlConnection();
con="連接數(shù)據(jù)庫字符串";
SqlCommond com=new SqlCommond();
com.Connection=con;
m.CommandTest=strContent;
com.CommandType = CommandType.Text;
con.Open();
try
{
con.ExecuteNonQuery();
}
catch (Exception ex)
{
......
}
finally
{
conn.Close();
}
那么會(huì)發(fā)現(xiàn)報(bào)錯(cuò),就是go語句附近有錯(cuò)誤。可以利用word替換go成""那么在運(yùn)行程序就發(fā)現(xiàn)數(shù)據(jù)庫表也就創(chuàng)建出來了。
那么可能會(huì)遇到這種情況,數(shù)據(jù)庫包含存儲(chǔ)過程,視圖,函數(shù)等。這就是筆者遇到的情況。那么此時(shí)就需要在那個(gè)特別的圖上全選。然而筆者照上面的做總是會(huì)報(bào)錯(cuò),但是在sql里執(zhí)行就沒有報(bào)錯(cuò)。最終也終于解決該問題
Process sqlprocess = new Process();
sqlprocess.StartInfo.FileName = "osql.exe";
//U為用戶名,P為密碼,S為目標(biāo)服務(wù)器的ip,infile為數(shù)據(jù)庫腳本所在的路徑
sqlprocess.StartInfo.Arguments = String.Format("-U {0} -P {1} -S {2} -i {3} -d {4}",
"sa", "asd123", "127.0.0.1", "D:\\CreateTable.sql",DataBaseName);
sqlprocess.Start();
//等待程序執(zhí)行.Sql腳本
sqlprocess.WaitForExit();
sqlprocess.Close();
Response.Write("<script>alert('Ok.');</script>");
這樣在asp.net中就可以調(diào)用.sql文件了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:博客園