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

DBNullのハマり:Field vs Field<int?>

出典: C# DataTable を LINQ でフィルタ・GroupBy・分割する3パターンDBNullのハマり:Field vs Field<int?>

DBNullのハマり:Field vs Field<int?> (csharp)#765e4bcb985a
// ❌ NG: NULL許容な列にField<int>を使うとNULL行で例外
var prices = dt.AsEnumerable()
    .Select(r => r.Field<int>("amount"))// amountがNULLの行で例外(Typed DataSetならStrongTypingException、一般ADO.NETではInvalidCastException)
    .ToList();
 
// ✅ OK: Nullable<T>で受ける
var prices = dt.AsEnumerable()
    .Select(r => r.Field<int?>("amount"))// NULLはnullとして返ってくる
    .ToList();
 
// ✅ OK: NULL許容を扱いつつ??で初期値
var pricesWithDefault = dt.AsEnumerable()
    .Select(r => r.Field<int?>("amount")?? 0)
    .ToList();
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #765e4bcb985a
  • lines: 14
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「DBNullのハマり:Field vs Field<int?>」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

10
図鑑トップ