sql server数据库,打包与安装,急,重分感谢。 sql server数据库,在项目打包时,怎么一起打包进去,并在安装时,又自动安装打包的数据库,C#(Windows项目,和web项目皆可)请高手指教,谢谢!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自已写一个恢复备份数据库的代码段建一个如下的类:[RunInstaller(true)] public partial class Installer1 : Installer { public Installer1() { InitializeComponent(); } protected override void OnAfterInstall(System.Collections.IDictionary savedState) { base.OnAfterInstall(savedState); //通过另一个对话框,与用户交互取得服务器连接信息 //插入恢复备份操作的代码段 //或执行创建数据库的SQL脚本 } }然后把数据库的备份文件一块打包,添加自义操作,并选定这个类所在的Exe文件即可 Sql server的打包安装?这个不容易集成。 http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242286ASP.NET程序的部署这里讲到一些,作个参考! .NET平台下WEB应用程序的部署(安装数据库和自动配置)http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx *****************************************************************************欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html 如果你的项目比较大,建议还是手动部署的好,如果你的软件比较小,使用人数也不多,那么你可以把sqlserver改为msde,msde最多支持10个用户。如果是msde的话,那么可以直接部署到你的程序里面,并且可以自动安装,自动还原数据库。 to feiyun0112(http://feiyun0112.cnblogs.com/) 按照这位老大的做了一下但是,在安装时,出现以下错误:用户'null'登陆失败,未与信任的Sql Server连接相关联望高手指教,是何原因???谢谢 to jetxia(Thinking&Asking&Studying)这位老大你的方法怎么实现,能不能给个实例谢谢 对于数据库的三种部署(不是安装数据库)方法:www.notsoft.cn/bright/3dbsetup.rar to lovvver(www.notsoft.cn这位老大,能把部署的方法说一下吗?谢谢 MARK顺便问下,如何在一个大安装包内,调用其他安装包? 部署的方法,一般来说有三中,还原法,附加法,脚本法,具体代码示例见:www.notsoft.cn/bright/3dbsetup.rar 用附加法,执行sp_attach_db T_SQL语句怎么样? 可以下载我的示例看看T_SQL语句的执行都是一样的,不同的只是方式和方便程度。 一般对sqlserver的部署,对MSDE同样可以。 对于lihonggen的技术是可以实现的,我的项目部署和打包就是如此你要保证sql server数据库的用户和你部署时登录的用户名一致 在部署时,登陆sql server,最好用windows系统安全帐户登陆,不要用sa/sapwd以避免设置密码。所以,对于机器上的sqlserver有一个要求,那就是登陆必须是混合认证模式。 各位大侠,我现在用执行sql脚本(文件名:db.sql)的方法,打包后,再安装这个数据库,结果在数据据库中,生成了所要安装的数据库,但问题是,安装的数据库中只有系统表,用户表与存储过程,确没生成.请问高手是何缘故.现在,我把我安装类的创建数据库的代码,贴出来,请大家看看是哪里不对.谢谢string connstr= String.Format("server={0};uid={1};pwd={2};persist security info=false;packet size=4096",this.Context.Parameters["server"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]); ExecuteSql(connstr, "master", "CREATE DATABASE " + this.Context.Parameters["dbname"]); System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process(); sqlProcess.StartInfo.FileName = this.Context.Parameters["targetdir"]+"osql.exe"; sqlProcess.StartInfo.Arguments = string.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", this.Context.Parameters["user"].ToString(), this.Context.Parameters["pwd"].ToString(),this.Context.Parameters["dbname"].ToString(),this.Context.Parameters["targetdir"].ToString()); sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; sqlProcess.Start(); sqlProcess.WaitForExit(); sqlProcess.Close(); System.IO.FileInfo sqlFileInfo =new System.IO.FileInfo(String.Format("{0}db.sql",this.Context.Parameters["targetdir"])); if (!sqlFileInfo.Exists) {sqlFileInfo.Delete();} private void ExecuteSql(string conn,string DatabaseName ,string Sql) { SqlConnection myConnection = new SqlConnection(conn); SqlCommand myCommand = new SqlCommand(Sql,myConnection); myCommand.Connection.Open(); myCommand.Connection.ChangeDatabase(DatabaseName); try{myCommand.ExecuteNonQuery();} finally{ myCommand.Connection.Close();} } 可以参考这里,http://blog.csdn.net/zhzuo/archive/2005/05/31/385140.aspxhttp://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx?mfr=true 谢谢:zhzuo(秋枫) sqlProcess.StartInfo.Arguments = string.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", 我在想是不是这里的db.sql生成时有问题,请问生成db.sql时要注意些什么? 我也在做类似的一个安装程序。1、数据库的安装。我首先用是在程序中调用sp_attach_db存储过程来做的,但如果直接在程序中运行sp_attach_db语句会失败;(如果先在express中手动附加一下,然后再分离一下,再在程序中用sp_attach_db语句就不会出错。)不知道手动附加后sql做了什么操作。后来,我改为用RESTORE DATABASE语句来做,倒没出什么问题。2、调用别的MSI安装包,我在程序里调用用的是msiexec.exe程序来做。但有问题。在此问下各位达人,调用别的MSI安装包,有什么别的方法吗?谢谢啊LZ,我MSN:[email protected],可以的话我们交流一下。 C#中listbox问题 c#利用MySQLDriverCS插入中文数据问题 《《datagridview控件合并单元格问题》》求指导啊~~~~ 急啊,毕业设计 我想做一个上传图片的功能 判断此图片是否存在 关于winform 打印格式问题:打印快递单的时候越打越下 c++unsigned char ssid[6]在c#下是什么类型 关于网页原文件中的相对URL地址替换成绝对地址的问题 谁能帮我把下面的两个小VB函数,改写成C#格式? 信息资源管理与在线监测系统的设计与实现 文件下载问题,忘指点,谢谢 HELP!如何获取指定进程窗口下,输入框的位置 请教c#如何使用第三方控件?引用的方法
建一个如下的类:
[RunInstaller(true)]
public partial class Installer1 : Installer
{
public Installer1()
{
InitializeComponent();
} protected override void OnAfterInstall(System.Collections.IDictionary savedState)
{
base.OnAfterInstall(savedState);
//通过另一个对话框,与用户交互取得服务器连接信息
//插入恢复备份操作的代码段
//或执行创建数据库的SQL脚本
}
}
然后把数据库的备份文件一块打包,添加自义操作,并选定这个类所在的Exe文件即可
这个不容易集成。
ASP.NET程序的部署
这里讲到一些,作个参考!
http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
如果你的软件比较小,使用人数也不多,那么你可以把sqlserver改为msde,msde最多支持10个用户。如果是msde的话,那么可以直接部署到你的程序里面,并且可以自动安装,自动还原数据库。
按照这位老大的做了一下
但是,在安装时,出现以下错误:
用户'null'登陆失败,未与信任的Sql Server连接相关联望高手指教,是何原因???
谢谢
这位老大
你的方法怎么实现,能不能给个实例
谢谢
www.notsoft.cn/bright/3dbsetup.rar
这位老大,能把部署的方法说一下吗?谢谢
www.notsoft.cn/bright/3dbsetup.rar
T_SQL语句的执行都是一样的,不同的只是方式和方便程度。
你要保证sql server数据库的用户和你部署时登录的用户名一致
现在,我把我安装类的创建数据库的代码,贴出来,请大家看看是哪里不对.谢谢
string connstr= String.Format("server={0};uid={1};pwd={2};persist security info=false;packet size=4096",this.Context.Parameters["server"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]);
ExecuteSql(connstr, "master", "CREATE DATABASE " + this.Context.Parameters["dbname"]);
System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();
sqlProcess.StartInfo.FileName = this.Context.Parameters["targetdir"]+"osql.exe"; sqlProcess.StartInfo.Arguments = string.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", this.Context.Parameters["user"].ToString(), this.Context.Parameters["pwd"].ToString(),this.Context.Parameters["dbname"].ToString(),this.Context.Parameters["targetdir"].ToString()); sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
sqlProcess.Start();
sqlProcess.WaitForExit();
sqlProcess.Close();
System.IO.FileInfo sqlFileInfo =new System.IO.FileInfo(String.Format("{0}db.sql",this.Context.Parameters["targetdir"]));
if (!sqlFileInfo.Exists) {sqlFileInfo.Delete();} private void ExecuteSql(string conn,string DatabaseName ,string Sql)
{
SqlConnection myConnection = new SqlConnection(conn);
SqlCommand myCommand = new SqlCommand(Sql,myConnection);
myCommand.Connection.Open();
myCommand.Connection.ChangeDatabase(DatabaseName);
try{myCommand.ExecuteNonQuery();}
finally{ myCommand.Connection.Close();} }
http://blog.csdn.net/zhzuo/archive/2005/05/31/385140.aspx
http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx?mfr=true
我在想是不是这里的db.sql生成时有问题,请问生成db.sql时要注意些什么?
1、数据库的安装。
我首先用是在程序中调用sp_attach_db存储过程来做的,但如果直接在程序中运行sp_attach_db语句会失败;(如果先在express中手动附加一下,然后再分离一下,再在程序中用sp_attach_db语句就不会出错。)不知道手动附加后sql做了什么操作。
后来,我改为用RESTORE DATABASE语句来做,倒没出什么问题。2、调用别的MSI安装包,我在程序里调用用的是msiexec.exe程序来做。但有问题。
在此问下各位达人,调用别的MSI安装包,有什么别的方法吗?谢谢啊LZ,我MSN:[email protected],可以的话我们交流一下。