多くのフィールド、最も重要なTOTAL_DOLLARSフィールドとTOTAL_UNITSフィールドを含む2つのExcelファイルを解析しています。これらのファイルには値が含まれていることがよくありますが、一部は空白またはnullのままです。フィールドが等しいJOINLINQを使用してこれら2つのDataTableを作成したいと思います。UPCただし、次のエラーが発生しました。
Cannot cast DBNull.Value to type 'System.Decimal'. Please use a nullable type
このエラーは、nullフィールドが原因で2つのテーブルを結合しようとしたときに発生します。
私のLINQコードは次のとおりです。
Dim query = From c In dtDollars.AsEnumerable() _
      Join r In dtUnits.AsEnumerable() _
      On c.Field(Of String)("UPC") Equals r.Field(Of String)("UPC") _
      Select _
      New _
      With {.UPC = r.Field(Of String)("UPC"), .WIC_NUMBER = c.Field(Of String)("WIC_NUMBER"), _
      .WAG_ITEM_DESC = c.Field(Of String)("WAG_ITEM_DESC"), _
      .WAG_BRAND = c.Field(Of String)("WAG_BRAND"), .UOM = c.Field(Of String)("UOM"), _
      .GSK_PROMO_GRP = c.Field(Of String)("GSK_PROMO_GRP"), _
      .TOTAL_DOLLARS = c.Field(Of Decimal)("TOTAL_DOLLARS"), _
      .TOTAL_UNITS = r.Field(Of Integer)("TOTAL_UNITS"), _
      .WKND_DATE = c.Field(Of DateTime)("WKND_DATE")}