首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

try.catch 有关问题

2012-12-14 
try.........catch问题private void button1_Click(object sender, EventArgs e){try{SqlConnection conn

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. .  检查下你的字符串 。  把异常抛出来看看。



我是来打酱油的!!!!!!!!!!
[其他解释]
引用:
conn.Open()如果不能连接上就会等待服务器给出响应,直到timeout,然后报出异常,在捕捉



+1

热点排行