我正做一个建库的安装包,有一个问题,就是如果我在建库失败后,要弹出一个消息框通知客户失败,然后安装程序终止,怎么做啊,下面是我的源代码 ,,在线等,急
 public partial class DBInstaller : Installer 
    { 
        public DBInstaller() 
        { 
            InitializeComponent(); 
        } 
        public override void Install(System.Collections.IDictionary stateSaver) 
        { 
            base.Install(stateSaver);             
            short signErr; 
            GreateDataBase(signErr); 
            if (signErr != 1) 
            { 
                return;                 
            }              
        }         private void GreateDataBase(out short signErr) 
        { 
            signErr = 1;  
            string strCon=  
                 "data source=127.0.0.1;initial catalog=master;user id=sa;password="; 
            SqlConnection con = new SqlConnection(strCon);    
             SqlCommand cmd; 
            String strSql = 
                 "select count(*) from master..sysdatabases where name = 'MCIMS '";            
            try 
             { 
                 con.Open();              } 
             catch (Exception ex) 
             { 
                 signErr = 0; 
                 return; 
             } 
            //删库 
            SqlDataAdapter dpt = new SqlDataAdapter(strSql, con); 
            DataTable dt; 
            dpt.Fill(dt); 
            if (dt.Rows.Count != 0) 
            { 
                strSql = "DROP DATABASE MCIMS"; 
                cmd = new SqlCommand(strSql); 
                try 
                { 
                    cmd.ExecuteNonQuery(); 
                } 
                catch (Exception ex) 
                { 
                    signErr = 0; 
                    return; 
                }                 
            } 
           //建库 
            try 
            { 
                strSql = "CREATE DATABASE MCIMS"; 
                cmd.ExecuteNonQuery(); 
            } 
            catch (Exception ex) 
            { 
                signErr = 0; 
                return; 
            }         } 

解决方案 »

  1.   

    最简洁最干净的操作方法.设待创建的数据库名为 newDB在要安装的数据库服务器上
    创建 newDB在开发人员测试用的数据库服务器上对 db 的数据进行清理工作(或是初始化), 直至数据是要发布到服务器上的状态.
    对 db进行备分 ,设备份文件名为 db_data_20071017.bak对数据库服务器的 newDB 进行恢复操作,选中设备为 db_data_20071017.bak既知手工操作有了步骤,那么,用程序安装时也很简单
    1, c#程序执行sql server的backup语句对数据库备份
    2, 执行newDB的建库语句
    3, 用restore语句对newDB进行恢复.这样的操作数据是最干净,也最容易排错的.当然,还有其它方法, 比如生成SQL脚本,但某些表如果有初始记录时就比较麻烦.
    或者采用dts导入导出,在SQL SERVER间复制对象和数据
    还可以是停掉SQL服务把ldf和mdf文件复制出来,然后到数据库服务器去附加, 这种做法比较麻烦.
      

  2.   

                try 
                { 
                    strSql = "CREATE DATABASE MCIMS"; 
                    cmd.ExecuteNonQuery(); 
                } 
     
    这里要重新定义cmd. 建库没那么简单吧? 你得定义NAME, FILENAME, SIZE, MAXSIZE, FILEGROWTH这些东东, 
    如果建库失败, 在catch可以弹出消息框, 通知用户,  然后可以在finally里关闭数据库连接.
      

  3.   

    关健是这只是一个类库,没办法用弹出消息框,我是在做安装包,参照 以下的相关文章做的,http://blog.csdn.net/sunearlier/archive/2006/06/25/830805.aspxhttp://www.cnblogs.com/deepcast/archive/2005/08/03/206699.html
      

  4.   

    楼楼上说得对,我忘了new 了