使用 backgroundWorker 出现的异常问题 错误信息如下 :在 System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常高分求解办法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; } 1.链接数据库的代码没有看到2.WorkerSupportsCancellation是否为true?建议直接用BackgroundWorker bg_ConnectionSql=new BackgroundWorker();的方式来建立线程 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(); } } 操作数据库方法 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(); } } 1.看看异常的具体信息?可把异常tostring打印出来2.我怀疑是数据库连接失败,mySqlConnection.Close()这句位置不对导致出错,应该放在mySqlConnection.Open(); 这句后面 不是数据库问题 那连接数据库方法注释了 也一样出错private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { if ((e.Argument.ToString())!="") { isSuccess = true; } else { isSuccess = false; } } 有做过单点登录的吗?给介绍下怎么做,多谢 学生信息资源管理 csdn的网站技术 如何在导入注册表文件时,不显示对话框? 请大狭帮忙告诉哪里有C# Primer(喉捷/陈硕),非常感谢,Mail:[email protected] 请问前辈们:asp.net中DataGrid控件的页码怎么让它导航到下一页?代码如何写?急!!急!!! 小弟迷茫了 求教,,急急急。。。。 这个错误怎么回事呢? VB.net语句转成C#语句问题,白给分啦。 怎么用timer类来实现lable闪烁效果? 请问怎么在一个panel里画一个圆?
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.WorkerSupportsCancellation是否为true?建议直接用BackgroundWorker bg_ConnectionSql=new BackgroundWorker();的方式来建立线程
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();
}
}
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();
} }
2.我怀疑是数据库连接失败,mySqlConnection.Close()这句位置不对导致出错,应该放在mySqlConnection.Open(); 这句后面
{
if ((e.Argument.ToString())!="")
{ isSuccess = true;
}
else
{ isSuccess = false;
}
}