sql server数据库,打包与安装,急,重分感谢。

LXXNIIT 2006-10-21 05:34:10
sql server数据库,在项目打包时,怎么一起打包进去,并在安装时,又自动安装打包的数据库,
C#(Windows项目,和web项目皆可)
请高手指教,谢谢!!!!
...全文
599 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
kbxj406 2006-11-03
  • 打赏
  • 举报
回复
我也在做类似的一个安装程序。
1、数据库的安装。
我首先用是在程序中调用sp_attach_db存储过程来做的,但如果直接在程序中运行sp_attach_db语句会失败;(如果先在express中手动附加一下,然后再分离一下,再在程序中用sp_attach_db语句就不会出错。)不知道手动附加后sql做了什么操作。
后来,我改为用RESTORE DATABASE语句来做,倒没出什么问题。

2、调用别的MSI安装包,我在程序里调用用的是msiexec.exe程序来做。但有问题。
在此问下各位达人,调用别的MSI安装包,有什么别的方法吗?谢谢啊

LZ,我MSN:kbxj406@hotmail.com,可以的话我们交流一下。
LXXNIIT 2006-10-28
  • 打赏
  • 举报
回复
问题还没解决,望高人指点
localway 2006-10-26
  • 打赏
  • 举报
回复
up
lovvver 2006-10-26
  • 打赏
  • 举报
回复
路过,无语
yaoliping 2006-10-26
  • 打赏
  • 举报
回复
UP
lovvver 2006-10-25
  • 打赏
  • 举报
回复
在部署时,登陆sql server,最好用windows系统安全帐户登陆,不要用sa/sapwd以避免设置密码。所以,对于机器上的sqlserver有一个要求,那就是登陆必须是混合认证模式。
chenqian5316 2006-10-25
  • 打赏
  • 举报
回复
对于lihonggen的技术是可以实现的,我的项目部署和打包就是如此
你要保证sql server数据库的用户和你部署时登录的用户名一致
lovvver 2006-10-25
  • 打赏
  • 举报
回复
一般对sqlserver的部署,对MSDE同样可以。
lovvver 2006-10-25
  • 打赏
  • 举报
回复
可以下载我的示例看看
T_SQL语句的执行都是一样的,不同的只是方式和方便程度。
kbxj406 2006-10-25
  • 打赏
  • 举报
回复
用附加法,执行sp_attach_db T_SQL语句怎么样?
lovvver 2006-10-25
  • 打赏
  • 举报
回复
我个人比较倾向于使用还原法,就是把数据库备份,然后在数据库安装包里面把备份文件拷贝到安装机器上去还原。
lovvver 2006-10-25
  • 打赏
  • 举报
回复
部署的方法,一般来说有三中,还原法,附加法,脚本法,具体代码示例见:
www.notsoft.cn/bright/3dbsetup.rar
kbxj406 2006-10-25
  • 打赏
  • 举报
回复
MARK

顺便问下,如何在一个大安装包内,调用其他安装包?
LXXNIIT 2006-10-25
  • 打赏
  • 举报
回复
to lovvver(www.notsoft.cn
这位老大,能把部署的方法说一下吗?谢谢
lovvver 2006-10-25
  • 打赏
  • 举报
回复
对于数据库的三种部署(不是安装数据库)方法:
www.notsoft.cn/bright/3dbsetup.rar
vvresoft 2006-10-25
  • 打赏
  • 举报
回复
LXXNIIT 2006-10-25
  • 打赏
  • 举报
回复
谢谢:zhzuo(秋枫)

sqlProcess.StartInfo.Arguments = string.Format(" -U {0} -P {1} -d {2} -i {3}db.sql",
我在想是不是这里的db.sql生成时有问题,请问生成db.sql时要注意些什么?
marvelstack 2006-10-25
  • 打赏
  • 举报
回复
可以参考这里,
http://blog.csdn.net/zhzuo/archive/2005/05/31/385140.aspx
http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx?mfr=true
LXXNIIT 2006-10-25
  • 打赏
  • 举报
回复
各位大侠,我现在用执行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();}

}
jetxia 2006-10-24
  • 打赏
  • 举报
回复
我们是用在安装是写了小程序用附加数据库的方法处理数据库的
加载更多回复(13)

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧