在登录的时候,点击登录触发btnLogin_Click事件
private void btnLogin_Click(object sender, EventArgs e)
{
//验证那些的就不写了 btnLogin.Enabled=false; try
{
//这里连接数据库,查询用户有效性
}
catch (InvalidOperationException ex)
{
MessageBox.Show("连接服务器失败!");
}
catch(Exception ex)
{
MessageBox.Show("123456");
}
finally
{
btnLogin.Enabled=true;
}}
当我运行程序,第一次点登录按钮时,超时时间到了后,会弹出“连接服务器失败",在不关闭窗体的情况下,再次单击登录按钮,就弹出123456,以后再点击登录按钮(不重新运行程序),都只弹出123456。我在第三次(即弹出123456后)开启了SQL Server服务后再点击登录,仍然弹出123456为什么?
private void btnLogin_Click(object sender, EventArgs e)
{
//验证那些的就不写了 btnLogin.Enabled=false; try
{
//这里连接数据库,查询用户有效性
}
catch (InvalidOperationException ex)
{
MessageBox.Show("连接服务器失败!");
}
catch(Exception ex)
{
MessageBox.Show("123456");
}
finally
{
btnLogin.Enabled=true;
}}
当我运行程序,第一次点登录按钮时,超时时间到了后,会弹出“连接服务器失败",在不关闭窗体的情况下,再次单击登录按钮,就弹出123456,以后再点击登录按钮(不重新运行程序),都只弹出123456。我在第三次(即弹出123456后)开启了SQL Server服务后再点击登录,仍然弹出123456为什么?
ctach的时候判断一下
对应的Exception弹出不同的消息
{
MessageBox.Show(ex.Message);
}
string connString="SQL SERVER连接字符串";
SqlConnection connection = new SqlConnection(connString) ;
connection.Open(); //如果无法连接到数据库(超时)了,那么在此行出错,它的异常就是InvalidOperationException
好的,现在我点击了登录按钮(btnLogin),触发了事件
private void btnLogin_Click(object sender, EventArgs e)
{
if (验证呀验证)
{ }
else
{
//通过了验证 btnLogin.Enabled = false; //禁用登录按钮,避免重复点击
string connString = "SQL SERVER连接字符串";
SqlConnection connection = new SqlConnection(connString);
try
{
connection.Open();
}
catch (InvalidOperationException ex)
{
//超时时间到了后,15S的样子,弹出 //错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。
//(provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "
MessageBox.Show(ex.Message);
return;
}
finally
{
btnLogin.Enabled = true;
}
}
}
现在的问题是这样的:运行程序,我第一次单击登录,15秒后弹出错误,然后登录按钮可用。
我把本地的SQL Server服务打开,照理说我这时候连接数据库应该是可以的了(排除用户名密码错误等因素)
我再点击登录按钮,照理来说应该是又重新进入btnLogin_Click事件,又重新进行验证,连接等操作,但为什么第二次单击的时候仍然会弹出错误提示?(就是又进入 到catch去了)
如果还出现错误的话 那么检查一下代码连接字符串