C#打包安装数据库教程.docx
《C#打包安装数据库教程.docx》由会员分享,可在线阅读,更多相关《C#打包安装数据库教程.docx(16页珍藏版)》请在冰豆网上搜索。
C#打包安装数据库教程
C#如何打包安装数据库教程
一、第一步准备工作
a)新建一空白”解决方案”
b)分别在解决方案下面创建一个”安装项目”和”类库”项目
此项目是安装项目
此项目里后面会添加”安装类”来执行操作数据库的代码
c)把要打包执行的SQL语句保存到一个名为”sql.txt”的文件内,如:
createtableStudents
(
StudentIDintidentity(1,1)primarykey,
Namechar(10)notnull,
Addressnvarchar(50),
Gradeint,
Emailnvarchar(50)
)
insertintoStudents(Name,Address,Grade,Email)
values('李明','扬州',1,'liming@')
注意:
文件中不能有GO
二、第二步设置”安装项目”
1.添加SQL文件
添加后的效果如上图
2.添加DBCustomer项目的输出
添加以后效果如上图
3.设置安装界面
点”属性窗口”,会看到如下图
修改属性
4.设置自定义操作
弹出如下窗体
双击
结果如下
在属性”CustomerActionData”下面写入以下信息
/server=[SERVER]/username=[USERNAME]/password=[PASSWORD]/databasename=[DATABASENAME]/targetdir=”[TARGETDIR]\”
注:
1.“/”之前必须有空格
2.[TARGETDIR]必须用双引号引起来(加双引号是为了解决路径中有空格的问题),并且后面再有反斜杠
targetdir=[TARGETDIR]是取得用户选择的安装路径
见图
到此,项目”DBSetup”就配置完成,下面设置项目”DBCustomer”
三、第三步完成项目”DBCustomer”
弹出如下界面
点”添加”
出现如下图界面
实现代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Configuration.Install;
usingSystem.IO;
usingSystem.Data.SqlClient;
namespaceDBCustomer
{
[RunInstaller(true)]
publicpartialclassDBAction:
Installer
{
publicDBAction()
{
InitializeComponent();
}
publicoverridevoidInstall(System.Collections.IDictionarystateSaver)
{
base.Install(stateSaver);
#region取得安装时用户输入的值
//这里取得的值就是用户输入的值
stringserver=this.Context.Parameters["server"];
stringname=this.Context.Parameters["username"];
stringpass=this.Context.Parameters["password"];
stringdbName=this.Context.Parameters["databasename"];
stringpath=this.Context.Parameters["targetdir"];
#endregion
#region读取要执行的SQL指令
FileStreamfs=newFileStream(path+"sql.txt",FileMode.Open);
StreamReadersr=newStreamReader(fs);
stringsql=sr.ReadToEnd();
sr.Close();
fs.Close();
#endregion
#region执行创建数据库
stringconnString=string.Format("server={0};uid={1};pwd={2};database=master",server,name,pass);
SqlConnectionconn=newSqlConnection(connString);
conn.Open();
//创建数据库
stringsqlDB=@"createdatabase"+dbName
+"onprimary(name='"+dbName+"_Data',filename='"+path+dbName+"_Data.mdf')";
//执行创建数据库
ExecuteSql(conn,sqlDB);
//执行SQL语句
conn.ChangeDatabase(dbName);//更改当前数据库
ExecuteSql(conn,sql);//执行创建表的语句
conn.Close();
#endregion
}
///
///自定义执行SQL语句方法
///
///
///
voidExecuteSql(SqlConnectionconn,stringsql)
{
SqlCommandcmd=newSqlCommand(sql,conn);
cmd.ExecuteNonQuery();
}
}
}
如还不清楚,可参考示例
编译好解决方案以后,在项目”DBSetup”下可以看到安装执行文件
运行主要界面如下: