動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

定石4: NULL値ハンドリングの違い

出典: C# DataReader vs DataAdapter — メモリ消費と性能の使い分け(業務SE 判断軸)定石4: NULL値ハンドリングの違い

定石4: NULL値ハンドリングの違い (csharp)#a39fc22a5b9a
// ❌ NG: DataReader.GetInt32()にNULLが来ると例外
int id = reader.GetInt32(0);   // NULL行でSqlNullValueException
 
// ✅ OK: DataReaderはIsDBNullで先にチェック
int? id = reader.IsDBNull(0)? (int?)null : reader.GetInt32(0);
 
// ✅ OK: DataAdapter / DataTableはField<int?>で受ける
int? id = dt.Rows[0].Field<int?>("id");   // NULLはnullで返る
// ❌ NG: Field<int>だとNULL行で例外(StrongTypingExceptionまたはInvalidCastException)
int id2 = dt.Rows[0].Field<int>("id");
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #a39fc22a5b9a
  • lines: 10
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「定石4: NULL値ハンドリングの違い」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

4
図鑑トップ