国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
C# WINFORM 打包數(shù)據(jù)庫(kù)
實(shí)現(xiàn)效果:安裝項(xiàng)目時(shí)直接附加數(shù)據(jù)庫(kù)。
1.首先在需要部署的項(xiàng)目的解決方案資源管理器中新建一個(gè)安裝項(xiàng)目
 
2.在安裝項(xiàng)目的文件視圖中,右鍵【應(yīng)用程序文件夾】->【添加】->【項(xiàng)目輸出】
 
選擇你的項(xiàng)目中的啟動(dòng)項(xiàng)目,下面的列表中,默認(rèn)就是主輸出,確定。
3.此時(shí)在文件系統(tǒng)的中間欄目,會(huì)自動(dòng)列出編譯所需的文件。一個(gè)簡(jiǎn)單項(xiàng)目打包差不多,還有快捷方式什么的,就不說(shuō)了。開(kāi)始重點(diǎn)了。
創(chuàng)建安裝程序類(lèi)
4.在解決方案資源管理器中,新建一個(gè)類(lèi)庫(kù)項(xiàng)目【InstallDB】,刪除Class1.cs,新建一個(gè)安裝程序類(lèi)[InstallDB.cs],等下將在這個(gè)類(lèi)中編寫(xiě)附加數(shù)據(jù)庫(kù)代碼。
 
創(chuàng)建自定義安裝對(duì)話框
5.在剛新建的安裝項(xiàng)目上右鍵,【視圖】->【用戶界面】:
在用戶界面中,右鍵【啟動(dòng)】-【添加對(duì)話框】-選擇【文本框(A)】-確定。
6.然后右鍵這個(gè)文本框(A),將其上移歡迎使用下面:
右鍵選擇【屬性】,參考下圖的信息填寫(xiě):

7.在剛新建的安裝項(xiàng)目上右鍵,【視圖】->【自定義操作】:
8.右鍵【自定義操作界面】的【安裝】節(jié)點(diǎn),【添加自定義操作】,彈出的對(duì)話框。
9.查找范圍里選擇應(yīng)用程序文件夾,再點(diǎn)擊右側(cè)的【添加輸出(O)…】,選擇剛新建的安裝程序類(lèi)項(xiàng)目,默認(rèn)還是主輸出,確定。此時(shí):
10.右鍵這個(gè)【主輸出來(lái)自InstallDB(活動(dòng))】,進(jìn)入屬性界面,在【CustomActionData】屬性里輸入下面的內(nèi)容:
/dbname=[DBNAME] /server=[SERVER] /user=[USER] /pwd=[PWD] /targetdir="[TARGETDIR]\"
說(shuō)明:其中前四個(gè)方括號(hào)中的大寫(xiě)字母,為上面第6步圖中輸入的四個(gè)EditProPerty屬性,需要對(duì)應(yīng)好。最后一個(gè)targetdir的值的意思是安裝后文件的目錄路徑。
特別提醒:前三個(gè)"/XXX=[XXX]"后面  ,都有一個(gè)空格的,小xin曾因此煩惱甚久,網(wǎng)上的某些教程實(shí)在是。。。很耐人。
11.現(xiàn)在可以添加數(shù)據(jù)庫(kù)文件了,在剛新建的安裝項(xiàng)目上右鍵,【添加】->【文件】,選擇你的MDF和LDF文件,就是安裝時(shí)需要附加的數(shù)據(jù)庫(kù)文件。
12.最后,我們只需在安裝程序類(lèi)里編寫(xiě)附加數(shù)據(jù)庫(kù)的代碼了。打開(kāi)上面第4步中新建的安裝程序類(lèi),參考下方的代碼,編寫(xiě)適合您的附加數(shù)據(jù)庫(kù)代碼:
 

/// <summary>
///
附加數(shù)據(jù)庫(kù)方法
/// </summary>
/// <param name="strSql">
連接數(shù)據(jù)庫(kù)字符串,連接master系統(tǒng)數(shù)據(jù)庫(kù)</param>
/// <param name="DataName">
數(shù)據(jù)庫(kù)名字</param>
/// <param name="strMdf">
數(shù)據(jù)庫(kù)文件MDF的路徑</param>
/// <param name="strLdf">
數(shù)據(jù)庫(kù)文件LDF的路徑</param>
/// <param name="path">
安裝目錄</param>
private void CreateDataBase( string strSql, string DataName, string strMdf, string strLdf, string path)
{
SqlConnection myConn = new SqlConnection(strSql);
String str = null ;
try
{
str
= " EXEC sp_attach_db @dbname='"+DataName+"',@filename1='"+strMdf+"',@filename2='"+strLdf+"'";
SqlCommand myCommand = new SqlCommand(str, myConn);
myConn
.Open();
myCommand
.ExecuteNonQuery();
MessageBox.Show("數(shù)據(jù)庫(kù)安裝成功!點(diǎn)擊確定繼續(xù)");//需Using System.Windows.Forms
}
catch(Exception e)
{
MessageBox.Show("數(shù)據(jù)庫(kù)安裝失??!" + e.Message+"\n\n"+"您可以手動(dòng)附加數(shù)據(jù)");
System
.Diagnostics.Process.Start(path);//打開(kāi)安裝目錄
}
finally
{
myConn
.Close();
}
}
public override void Install(System.Collections.IDictionary stateSaver)
{
string server = this.Context.Parameters["server"];//服務(wù)器名稱(chēng)
string uid = this.Context.Parameters["user"];//SQlServer用戶名
string pwd = this.Context.Parameters["pwd"];//密碼
string path = this.Context.Parameters["targetdir"];//安裝目錄
string strSql = "server=" + server + ";uid=" + uid + ";pwd=" + pwd + ";database=master";//連接數(shù)據(jù)庫(kù)字符串
string DataName = "JXC";//數(shù)據(jù)庫(kù)名
string strMdf = path + @"JXC.mdf";//MDF文件路徑,這里需注意文件名要與剛添加的數(shù)據(jù)庫(kù)文件名一樣!
string strLdf = path + @"jxc_log.ldf";//LDF文件路徑
base.Install(stateSaver);
this.CreateDataBase(strSql, DataName, strMdf, strLdf, path);//開(kāi)始創(chuàng)建數(shù)據(jù)庫(kù)
}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于4.5Framework web程序、SQLSERVER數(shù)據(jù)庫(kù)打包
C# 通過(guò)DataGridView更新數(shù)據(jù)庫(kù)
事務(wù) Transaction
Java反射機(jī)制
如何用SQLDMO在ASP.NET頁(yè)面下實(shí)現(xiàn)數(shù)據(jù)庫(kù)的備份與恢復(fù)
C#數(shù)據(jù)庫(kù)操作類(lèi)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服