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块

解决方案 »

  1.   

    string myconnection = "server=(local);database=news;uid=sa;pwd=123456";
    SqlConnection conn = new SqlConnection(myconnection);
    换成这个试试?
      

  2.   

    conn.Open();表示正在连接数据库中,里面可能包括失败重试等操作,当然时间长了
      

  3.   

     catch(Exception ex)
                {
                   MessageBox.Show(ex.Message);
                }
      

  4.   

    你没设置timeout...默认尝试连接时间好像是30秒SqlConnection conn = new SqlConnection("data source=192.168.1.40;database=test;user id=test;password=test;timeout=10");不记得是不是这么写的了,反正就这样的
      

  5.   

    打开的资源要及时释放:             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"))
                {
                } 
      

  6.   

    conn.Open()如果不能连接上就会等待服务器给出响应,直到timeout,然后报出异常,在捕捉
      

  7.   

    正在连接  当然不会直接catch. .  检查下你的字符串 。  把异常抛出来看看。我是来打酱油的!!!!!!!!!!
      

  8.   

    conn.Open()如果不能连接上就会等待服务器给出响应,直到timeout,然后报出异常,在捕捉