2016-03-30 13 views
0

SQLConnectionの試行回数を取得しようとしています。 以下は、魔法が起こるコードを見ることができます。 「i」は試行回数です。接続 'con'は多くのSqlExceptionsをスローしますが、以下に示すようにそれらをキャッチできません。 'databaseConnection'は接続文字列を表します。テストの目的で現在は空です。 私は何かが不足していると思いますが、C#でSQLプログラミングを初めて習得して以来、何が分かりません。 "txtProgressbarWorking"はUIのラベルです。SQL:SQL接続を取得しようと試みます

   int i = 1; 
       con = new SqlConnection(databaseConnection); 
       try 
       { 
        con.Open(); 
       } 
       catch(SqlException s) 
       { 
        txtProgressbarWorking.Content = "Connecting... " + (++i); 
       } 

答えて

0

このコードで間違っていくつかあります。

1)あなたはループのいくつかの並べ替えでこれを呼び出しているの?そうでない場合は、i変数は増分されません。

2)SqlConnection.Open()は、いくつかの種類の例外をスローします。ちょうどSqlExceptionではありません。なぜなら、あなたが言及したように「捕まえられない」という理由です。理想的には、各例外を指定するか、上位レベルのSystem.SystemExceptionにキャッチする必要があります。

3)プログレスバーをインクリメントするコードは、例外ハンドラのキャッチブロック内にあり、例外がキャッチされた場合にのみ実行されます。実際にこのコードをループ内で呼び出す場合は、catchブロック内のコードをtryブロックに移動することをお勧めします。

4)++ii++である必要があります。iはステートメントの後にインクリメントされます。または、iを1ではなく0に初期化してください。キャッチブロック内のiの最初の値は2になります。

[MSDNのSqlConnectionに関するドキュメントをご覧ください。オープンメソッド()] [1] https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open%28v=vs.110%29.aspx

関連する問題