2016-10-05 26 views
1

問題があります。私はC#.netでウィンドウフォームアプリケーションを作成していて、ローカルネットワーク上のSQL Serverに接続しています。 ネットワークが切断された場合、プログラムが応答しません。つまり、SQL Serverからデータを選択しようとしますが、ネットワークは切断されています。このエラーをキャッチするには?前もって感謝します。SQL Serverに接続中にプログラムが応答しない

+0

プログラムにtry-catchブロックがありますか?接続しようとしたときに設定したタイムアウトは何ですか? – Tim

+0

はい私はtry catchを使用します!しかし、私はタイムアウトを設定する方法を知らない!あなたがplz答えを知っていれば!大変ありがとうございました –

+0

あなたが使用しているコードを表示できますか? –

答えて

0

基本的にOpen Connection Firstを確認する必要があります。

SqlConnection con = new SqlConnection(Connection_string); //specify your connection string such as Server database etc ... 
if (con.State == System.Data.ConnectionState.Open) 
//statements 

また、接続が閉じられたことを通知するイベントを作成することもできます。

+0

ありがとう!私はデータを選択する前に接続をチェックしないでください!私はそれを試してみます –

+0

@Mean Sokleapはあなたが答えが好きなら答えを受け取ります=) –

2

タイミングをMSDN

をドキュメントを参照してくださいここでは彼らのコード例だ

using System; 
using System.Data.SqlClient; 
/// 
public class A { 
    /// 
    public static void Main() { 
     string connectionString = ""; 
     // Wait for 5 second delay in the command 
     string queryString = "waitfor delay '00:00:05'"; 
     using (SqlConnection connection = new SqlConnection(connectionString)) { 
     connection.Open(); 
     SqlCommand command = new SqlCommand(queryString, connection); 
     // Setting command timeout to 1 second 
     command.CommandTimeout = 1; 
     try { 
      command.ExecuteNonQuery(); 
     } 
     catch (SqlException e) { 
      Console.WriteLine("Got expected SqlException due to command timeout "); 
      Console.WriteLine(e); 
     } 
     } 
    } 
} 

ライン

command.CommandTimeout = 1; 

は間違いなくそれとして、あまりにも 'を使用して' の下に、あなたのSQLコードをラップお知らせリソースを自動的に割り当て解除します。

+0

ありがとう!私はそれを試してみます。 –

関連する問題