制作安装程序时,如何制作数据库安装包? 我用C# 做了一个桌面软件,涉及到了数据库(sql2000),不知道如何把数据库搞入安装程序。听说写成做成脚本就行了?还是不知道怎么用,请大家指点一下。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 根据所用的安装程序不同可能不一样,我是这样做的: 另外做一个c#应用程序,功能就是给安装用户填入数据库连接参数,然后用参数生成sqlconnection连接,调用sqlcommand执行数据库还原或执行sql脚本文档,这样这个程序就完成了数据库的安装。 你再把这个应用程序和对应的数据库备份(或sql脚本文档)放到你的安装包,在安装的最后执行这个应用程序就行了。 我的做法是把数据库文件一起打包进去,安装程序时附加数据库。 private void AttachDatabase() { SqlConnection conn = null; try { //如果已经有数据库则删除 string sql = "SELECT count(NAME) FROM SYSDATABASES WHERE NAME='" + databaseName + "'"; conn = new SqlConnection("Data Source=" + cboTrial.SelectedItem.ToString() + ";Integrated Security=True;Initial Catalog=master"); conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); int count = int.Parse(cmd.ExecuteScalar().ToString()); if (count > 0) { cmd.CommandText = "drop database " + databaseName; cmd.ExecuteNonQuery(); } //附加新的数据库 string path = JYG.Common.PublicMethods.GetCurrentPath() + "data\\"; cmd = new SqlCommand(); cmd.CommandText = "sp_attach_db '" + databaseName + "','" + path + databaseName + ".mdf','" + path + databaseName + ".ldf'"; cmd.Connection = conn; cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message, "错误窗体", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { conn.Close(); } } 你直接在VS中创建数据库,在打包时将.mdf文件包含进去就可以了! 求System.Windows.Forms.dll里各控件图标打包 c#入门经典第五版的一个问题~! 求助 关于ilist的 服务器应用程序是怎么做的? 求个正则小问题 求正则表达式 XML 路径 字符串 怎么写 ? as string和 tostring()有什么区别吗? c# winform 提交格式文本,带图片 如何在任务栏嵌入一个文本框? C#帮小弟介绍基本好书和好的视频讲解,小弟是新手,刚刚开始想学习C# 注册用户用户代码为处理SqlException
另外做一个c#应用程序,功能就是给安装用户填入数据库连接参数,然后用参数生成sqlconnection连接,调用sqlcommand执行数据库还原或执行sql脚本文档,这样这个程序就完成了数据库的安装。
你再把这个应用程序和对应的数据库备份(或sql脚本文档)放到你的安装包,在安装的最后执行这个应用程序就行了。
{
SqlConnection conn = null;
try
{
//如果已经有数据库则删除
string sql = "SELECT count(NAME) FROM SYSDATABASES WHERE NAME='" + databaseName + "'";
conn = new SqlConnection("Data Source=" + cboTrial.SelectedItem.ToString() +
";Integrated Security=True;Initial Catalog=master");
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
int count = int.Parse(cmd.ExecuteScalar().ToString());
if (count > 0)
{
cmd.CommandText = "drop database " + databaseName;
cmd.ExecuteNonQuery();
} //附加新的数据库
string path = JYG.Common.PublicMethods.GetCurrentPath() + "data\\";
cmd = new SqlCommand();
cmd.CommandText = "sp_attach_db '" + databaseName + "','" + path + databaseName + ".mdf','" + path + databaseName + ".ldf'";
cmd.Connection = conn;
cmd.ExecuteNonQuery(); }
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误窗体",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
}