错误信息如下 :在 System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常
高分求解办法  

解决方案 »

  1.   


    private bool isSuccess;
     private void button2_Click(object sender, EventArgs e)
            {
                string ConnectionString = "server=" + txtServerIP.Text + ";database=" + txtdbname.Text + ";uid=" + txtuid.Text + ";pwd=" + txtpwd.Text + ";";
                backgroundWorker1.RunWorkerAsync(ConnectionString);
                button2.Enabled = false;
            }
    //异步测试数据库连接
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                if (DBManager.testconn(e.Argument.ToString()))
                {                isSuccess = true;
                }
                else
                {                isSuccess = false;
                }
            }
            //异步测试退出
            private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
                if (backgroundWorker1.CancellationPending == false)
                {
                    if (isSuccess)
                    {
                        MessageBox.Show("测试成功,当前服务器可用", "提示信息");
                    }
                    else
                    {
                        MessageBox.Show("测试失败,请检查服务器设置", "提示信息");
                    }
                    button2.Enabled = true;            }
            }
    //取消
            private void button1_Click(object sender, EventArgs e)
            {
                backgroundWorker1.CancelAsync();
                this.button2.Enabled = true;
                        }
      

  2.   

    1.链接数据库的代码没有看到
    2.WorkerSupportsCancellation是否为true?建议直接用BackgroundWorker bg_ConnectionSql=new BackgroundWorker();的方式来建立线程
      

  3.   

    WorkerSupportsCancellation=true;  已在界面属性中设置  操作数据库方法
            public static bool testconn(string connstr)
            {
                SqlConnection mySqlConnection; 
                string ConnectionString = connstr;
                mySqlConnection = new SqlConnection(ConnectionString);
                try
                {
                    mySqlConnection.Open();
                    return true;
                }
                catch
                {
                    return false;
                }
                finally
                {
                    mySqlConnection.Close();
                }
     
            }
      

  4.   

    操作数据库方法 
            public static bool testconn(string connstr) 
            { 
                SqlConnection mySqlConnection; 
                string ConnectionString = connstr; 
                mySqlConnection = new SqlConnection(ConnectionString); 
                try 
                { 
                    mySqlConnection.Open(); 
                    return true; 
                } 
                catch 
                { 
                    return false; 
                } 
                finally 
                { 
                    mySqlConnection.Close(); 
                }         }
      

  5.   

    1.看看异常的具体信息?可把异常tostring打印出来
    2.我怀疑是数据库连接失败,mySqlConnection.Close()这句位置不对导致出错,应该放在mySqlConnection.Open(); 这句后面
      

  6.   

    不是数据库问题   那连接数据库方法注释了  也一样出错private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                if ((e.Argument.ToString())!="")
                {                isSuccess = true;
                }
                else
                {                isSuccess = false;
                }
            }