2008-08-26 27 views
24

実行したいSQL文が長時間実行されていて、接続文字列の "timeout ="句に関係なく、常に30秒後に終了するようです。接続文字列でタイムアウトが受け付けられない

私はちょうど

は何か他のものが私のタイムアウトをオーバーライド、またはSQL Serverがそれを無視させることができることがありますなど、それを実行するためにSqlHelper.ExecuteNonQuery()を使用して、それが接続を開くの世話をさせるんですか?私は、クエリ上でプロファイラを実行して、私のコードではなく、私が管理スタジオでそれを実行すると、トレースは全く違って見えません。

管理スタジオは約1分でクエリを完了しますが、タイムアウトが300または30000に設定されていても、自分のコードは30秒後にタイムアウトします。

答えて

38

接続文字列にタイムアウトを設定するのに何を使用していますか? "ConnectionTimeout"というメモリから、実際にはにかかる時間にのみ影響し、サーバーにを接続します。

それぞれの個別のコマンドには、あなたが探しているものとなる別の "CommandTimeout"があります。 SqlHelperがどのように実装しているのかよく分かりません。

+1

明らかです!しかし、それは私が答えを逃して2時間を無駄にするのを止めなかった....ありがとう! – Aaron

14

接続文字列のタイムアウトに加えて、 SQLコマンドのtimeoutプロパティを使用してみます。以下は、SqlCommandクラスを使用したC#サンプルです。その等価物はあなたが使用しているものに当てはまるべきです。

SqlCommand command = new SqlCommand(sqlQuery, _Database.Connection); 
command.CommandTimeout = 0; 
int rows = command.ExecuteNonQuery(); 
関連する問題