在vs2005中做安装程序,用户界面编辑器中添加了文本框以便让客户输入数据库sa的密码,但是我想在这个界面中的文本框后增加一个按钮,以便测试数据库是否能够连接和输入的sa密码是否正确,可我不知道怎么加这个按钮,以及点击这个按钮怎么调用测试数据库代码????谢谢各位大侠了…………

解决方案 »

  1.   

    try
    {
    conn.open();
    }
    catch...
    打开数据库连接,如果成功为正确,不成功为错误
      

  2.   

    你需要添加自定义安装类(Install),并编写相应的方法,添加一个自定义的form窗体,在这个窗体里添加文本框和按钮并编写C#代码进行数据库连接测试。
      

  3.   

    1:添加一个类库项目,比如InstallDll,添加一个安装程序类(Installer1),按实际情况重写基类的方法,比如: protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
    {
    try
    {
    MessageBox.Show("安装前");
    //string sourceDir = this.Context.Parameters["SourceDir"];
    //MessageBox.Show(sourceDir);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    base.OnBeforeInstall(savedState);
    }在方法里面可以调用设计好的Form,比如在项目里添加一个窗体Form1,可以这样:
    protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
    {
    try
    {
    Form1 f=new Form1();
    f.ShowDialog();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    base.OnBeforeInstall(savedState);
    }
    这样你的逻辑可以写到Form1中了。生成这个项目,在安装项目里添加为主输出,在自定义操作里添加相应的节点下,重新生成安装项目进行测试。
      

  4.   

    参考下这个:
    http://www.neter8.com/thread-64554-1-1.html
      

  5.   

     protected override void OnBeforeInstall(IDictionary savedState)
            {
                try
                {
                    Form1 f = new Form1();
                    f.ShowDialog();
                }
                catch (Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
                base.OnBeforeInstall(savedState);
            }
    我做的怎么是在安装完成之后才测试窗口啊???
      

  6.   

                    OleDbConnection con = new OleDbConnection("Provider=SQLOLEDB;Persist Security  Info=True;Data Source=" + ip
                                                            + ";Password=" + pwd
                                                            + ";User ID=" + uid
                                                            + ";Initial Catalog=" + database);
                    error = con.ConnectionString;
                    try
                    {
                        //con.ConnectionTimeout = 500;                    con.Open();
                        con.Close();
                        con.Dispose();
                    }
                    catch (OleDbException err)
                    {
                        error = err.Message;
                        con.Close();
                        con.Dispose();
                    }
      

  7.   

    我觉得用state来检测当前数据库状态可能更加科学一点