2016-11-02 16 views
0

リモートサーバーに設定されているオープンな行を実行する必要があるクエリを衛星で受信しました 私のタイムアウトは0に "はい、私はそれをしないことを知っている" 私はSSMSで私のクエリを実行し、それは3分から1.5時間のどこに戻るにかかることができます。 "はい私は知っている"しかし、それはそれが何であるかです。私はすべてのSQLバックエンドの最適化...実行計画を完了して.....それはそれだからです。操作が完了する前にタイムアウト時間が経過しているか、サーバーが接続タイムアウト= 0であっても応答していません

SSMSで5分かかるクエリを実行しています。私の接続タイムアウトが0

string connString = ("server = " + _SourceVal + "; user id = myid; 
password = mypw; database = mydb;Connection Timeout=0"); 

に設定さえして、私は私が手に私のDS移入する私のアプリでそれを実行して問題ありませんが、「タイムアウト時間は.......」ので、私の中での時間のチェックを入れませんコードとそれは私の例外にドロップする前に34から35秒を実行している

Console.WriteLine(DateTime.Now + "スタート");

 try 
     { 
      conn.Open(); 
      da.Fill(ds); 
      conn.Close(); 

     } 
     catch (Exception e) 
     { 
      Console.WriteLine(DateTime.Now + "end"); 
      MessageBox.Show("error with the findingMisMatch " + e.Message); 
     } 

     return ds; 

結果

2016年11月2日2時34分00秒PMStart スレッドが ''(0x1944)コード0(0x0の)で終了しました。型「System.Data.SqlClient.SqlException」が 最初のチャンス例外がで、のSystem.Data.dll 2016年11月2日午前2時34分35秒PMend

答えて

0

あなたはCommandTimeoutのを増加しなければならないでしょうに発生しましたデフォルトは30秒です。したがって、あなたの場合、無制限の場合は0に設定することができます。ここ

は、MSDNからのサンプルである:[https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout(v=vs.110).aspx]

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); 
     } 
     } 
    } 
} 
関連する問題

 関連する問題