|
分類:[.NET 全般]
開発環境:Visual Studio 2017、 言語:C# データベース:SQL Server 2016 Express
Windowsフォームアプリケーションを開発しています。 データベースから取得したデータをDataTableに格納し ToString()を使ってstring型に変換しています。
リリース環境でソフトウェアが落ちたという現象がありました。 当該のコードは、try〜catchを使った例外発生時のエラーログを残す処理がなかったため 例外発生するケースがあるのかどうかを推定しながら調査をしています。 データベースからSELECTにて選択したデータは、DataTableにて管理していますが このDataTableの指定行・指定列の値がnull以外で例外発生するケースはあり得るでしょうか? あり得るとしたら、どのようなケースが考えられるでしょうか?
実装例(そのまま載せられないため、一部抜粋とします)-----------------------------
DataTable dtDataTable = new DataTable(); string sql = "select * FROM XXXXX"; sql += string.Format(" WHERE {0} = '{1}'", YYYYY, strID);
using (OleDbConnection connection = new OleDbConnection(strConnectionString)) { try { //SQL Server DB接続 OleDbDataAdapter adapter = new OleDbDataAdapter(); adapter.SelectCommand = new OleDbCommand(sql, connection); OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter); connection.Open(); //読込 adapter.Fill(dtDataTable); } catch (Exception ex) { ; // ここで例外発生した場合は、エラーログに書きこむ } }
for (int j = 0; j < dtDataTable.Rows.Count; j++) { dtDataTable.Rows[j]["ID"] = nNewID.ToString(); string[] val = { dtDataTable.Rows[j]["No"].ToString(), dtDataTable.Rows[j]["Name"].ToString() } // DBにアクセスする処理 }
|