私は時々動作するコードのスライスを持っています。実行中のクエリは自分で作成したものではありませんが、データベースに対して実行するだけで必要な結果が得られると言われています。これが私のコードです:
try {
using (SqlDataReader dr = cmd.ExecuteReader()) {
while (dr.Read()) {
try {
list.Add(dr.GetString(3) + " " + dr.GetInt32(4).ToString() + " " + dr.GetString(5) + " " + dr.GetDecimal(8).ToString());
} catch (Exception e) {
list.Add("fail");
}
}
}
} catch (SqlException sqlException) {
Debug.WriteLine(sqlException.Message);
}
権限がないかテーブルが存在しないため、テーブルを削除できないというエラーが表示されることがあります。それ以外の場合、クエリは問題なく実行され、結果を取得してリストに保存できます。
SQL Server 2008 でクエリを実行すると、実際にエラーが発生することがありますが、結果は表示され、期待どおりです。だから私の質問は次のとおりです。いつでも発生するように見えるエラーに関係なく、これらの結果を取得するにはどうすればよいですか?
これは、私の問題を引き起こしているクエリの小さな部分です。
IF EXISTS (SELECT * from tempdb..sysobjects where name like '#TABLE%')
DROP #TABLE
私が実行しているクエリにはこれらのifステートメントが多数あり、どれがエラーを引き起こすかは予測できません。したがって、私が今行ったことは、DROP #TABLE を try-catch ブロックで囲み、少なくとも Silverlight プログラムで結果を取得できるようにすることです。上層部に連絡して、クエリがこれらのエラーを自発的に返す理由を尋ねます..