2012-03-22 2 views
0

私はVisual Studio 2010、TableAdaptersを使用していて、C#で自分のコードを書いています。私は現在、いくつかのデータ集団コードを書いた後に自分のコードをデバッグすることに挑戦しています。私は遭遇しているSQLの問題を見ています。この時点で、何らかのSQLリトライコードを実装して、さまざまな理由でタイムアウトした場合にクエリを再試行するようにしたいと考えています。私はそれらを私のビジネスロジック層に含めることができますが、その後私は自分のTableAdapterに呼び出すすべてのBLLメソッドでそのコードを複製しています。私は、テーブルアダプターレベルでこれを行う必要があると信じています。あるいは、別のデータに対応する30以上の異なるテーブルアダプターのオーダーを持っているよりも、どこか高いです。誰もがすべてのTableAdapterによって実行されるコードを実装する上で任意のサンプルコードを持っていますか?私はTableAdaptersを拡張する上でサンプルコードを見てきましたが、リトライロジックのためにさらに集中化されたものを探しています。ASP.Net TableAdaptersを使用する場合、SQL再試行ロジックを実装する最適な場所はどこですか?

答えて

0

あなたはまた、あなたが2-3の試みのためのDAL層に再試行ロジックを置くことができます= 0

SqlCommand.CommandTimeout 

コマンドタイムアウトプロパティを設定することで、この問題を回避することができます。

+0

ロジックをDALレイヤーの中央に配置するにはどうすればよいでしょうか。あなたがDALレイヤーを言うとき、私が持っているTableAdapterのセットと、私が作成して追加したsprocsに対応するメソッドのセットを考えています。どのようにして1つの場所でリトライロジックを使用すれば、すべてのロジックを使用できますか? – BuffDev1

+0

まず、これがタイムアウトの問題のみである場合は、タイムアウト= 0を設定します。それ以外の場合は、2番目に、レイヤー機能でtry catchおよびtry catch whileループにリクエストを入れます。データベースへのリクエストを送信中に、レイヤー内でエラーが発生した場合は、SQLエラー番号を取得します。今このエラー番号に基づいて成功するまで3回繰り返します。 – Pankaj

+0

これに関するアップデートはありますか? – Pankaj

関連する問題