try.........catch 问题
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection conn = new SqlConnection("data source=192.168.1.40;database=test;user id=test;password=test");
conn.Open();
MessageBox.Show("打开成功");
conn.Close();
}
catch
{
MessageBox.Show("打开失败");
}
}
为什么 当连接数据库失败时, 程序会死掉 (在 conn。open()这里死掉的) 过了很久才会 进入 catch 块 执行 而不是 马上 进入catch块
[最优解释]
conn.Open();表示正在连接数据库中,里面可能包括失败重试等操作,当然时间长了
[其他解释]
你没设置timeout...默认尝试连接时间好像是30秒
SqlConnection conn = new SqlConnection("data source=192.168.1.40;database=test;user id=test;password=test;timeout=10");
不记得是不是这么写的了,反正就这样的
[其他解释]
conn.Open()如果不能连接上就会等待服务器给出响应,直到timeout,然后报出异常,在捕捉
[其他解释]
conn.Open()如果不能连接上就会等待服务器给出响应,直到timeout,然后报出异常,在捕捉
[其他解释]
string myconnection = "server=(local);database=news;uid=sa;pwd=123456";
SqlConnection conn = new SqlConnection(myconnection);
换成这个试试?
[其他解释]
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
[其他解释]
看看数据库地址 数据库名称 用户名 密码 是否正确,搞个正确的试试
[其他解释]
连接速度慢,还要匹配
[其他解释]
学习一下
[其他解释]
打开的资源要及时释放:
try
{
SqlConnection conn = new SqlConnection("data source=192.168.1.40;database=test;user id=test;password=test");
conn.Open();
MessageBox.Show("打开成功");
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
//或者这样写
using(SqlConnection conn = new SqlConnection("data source=192.168.1.40;database=test;user id=test;password=test"))
{
}
[其他解释]
。。。正在连接 当然不会直接catch. . 检查下你的字符串 。 把异常抛出来看看。
我是来打酱油的!!!!!!!!!!
[其他解释]
+1