sql server数据库,在项目打包时,怎么一起打包进去,并在安装时,又自动安装打包的数据库,
C#(Windows项目,和web项目皆可)
请高手指教,谢谢!!!!

解决方案 »

  1.   

    自已写一个恢复备份数据库的代码段
    建一个如下的类:
    [RunInstaller(true)]
        public partial class Installer1 : Installer
        {
            public Installer1()
            {
                InitializeComponent();
            }        protected override void OnAfterInstall(System.Collections.IDictionary savedState)
            {
                base.OnAfterInstall(savedState);
                //通过另一个对话框,与用户交互取得服务器连接信息
                //插入恢复备份操作的代码段
                //或执行创建数据库的SQL脚本       
            }
        }
    然后把数据库的备份文件一块打包,添加自义操作,并选定这个类所在的Exe文件即可
      

  2.   

    Sql server的打包安装?
    这个不容易集成。
      

  3.   

    http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242286
    ASP.NET程序的部署
    这里讲到一些,作个参考!
      

  4.   

    .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
      

  5.   

    如果你的项目比较大,建议还是手动部署的好,
    如果你的软件比较小,使用人数也不多,那么你可以把sqlserver改为msde,msde最多支持10个用户。如果是msde的话,那么可以直接部署到你的程序里面,并且可以自动安装,自动还原数据库。
      

  6.   

    to feiyun0112(http://feiyun0112.cnblogs.com/) 
    按照这位老大的做了一下
    但是,在安装时,出现以下错误:
    用户'null'登陆失败,未与信任的Sql Server连接相关联望高手指教,是何原因???
    谢谢
      

  7.   

    to jetxia(Thinking&Asking&Studying)
    这位老大
    你的方法怎么实现,能不能给个实例
    谢谢
      

  8.   

    对于数据库的三种部署(不是安装数据库)方法:
    www.notsoft.cn/bright/3dbsetup.rar
      

  9.   

    to lovvver(www.notsoft.cn
    这位老大,能把部署的方法说一下吗?谢谢
      

  10.   

    MARK顺便问下,如何在一个大安装包内,调用其他安装包?
      

  11.   

    部署的方法,一般来说有三中,还原法,附加法,脚本法,具体代码示例见:
    www.notsoft.cn/bright/3dbsetup.rar
      

  12.   

    用附加法,执行sp_attach_db T_SQL语句怎么样?
      

  13.   

    可以下载我的示例看看
    T_SQL语句的执行都是一样的,不同的只是方式和方便程度。
      

  14.   

    一般对sqlserver的部署,对MSDE同样可以。
      

  15.   

    对于lihonggen的技术是可以实现的,我的项目部署和打包就是如此
    你要保证sql server数据库的用户和你部署时登录的用户名一致
      

  16.   

    在部署时,登陆sql server,最好用windows系统安全帐户登陆,不要用sa/sapwd以避免设置密码。所以,对于机器上的sqlserver有一个要求,那就是登陆必须是混合认证模式。
      

  17.   

    各位大侠,我现在用执行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();} }
      

  18.   

    可以参考这里,
    http://blog.csdn.net/zhzuo/archive/2005/05/31/385140.aspx
    http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx?mfr=true
      

  19.   

    谢谢:zhzuo(秋枫) sqlProcess.StartInfo.Arguments = string.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", 
    我在想是不是这里的db.sql生成时有问题,请问生成db.sql时要注意些什么?
      

  20.   

    我也在做类似的一个安装程序。
    1、数据库的安装。
    我首先用是在程序中调用sp_attach_db存储过程来做的,但如果直接在程序中运行sp_attach_db语句会失败;(如果先在express中手动附加一下,然后再分离一下,再在程序中用sp_attach_db语句就不会出错。)不知道手动附加后sql做了什么操作。
    后来,我改为用RESTORE DATABASE语句来做,倒没出什么问题。2、调用别的MSI安装包,我在程序里调用用的是msiexec.exe程序来做。但有问题。
    在此问下各位达人,调用别的MSI安装包,有什么别的方法吗?谢谢啊LZ,我MSN:[email protected],可以的话我们交流一下。