データ検証のためにいくつかの値を連結するために、このクエリ式があります
result.AddRange(from string dr in ercDt
select dc.Ordinal.ToString() + "|" + dr);
ercDt[0] が DBNull で、これ以上行がないため、このエラーが発生します
タイプ 'System.DBNull' のオブジェクトをタイプ 'System.String' にキャストできません。
私はこれを試しました
result.AddRange(from string dr in ercDt
where dr.Any(x => x != null)
select dc.Ordinal + "|" + dr);
この
result.AddRange(from string dr in ercDt
where ercDt.Any(x => x != null)
select dc.Ordinal + "|" + dr);
この
result.AddRange(from string dr in ercDt
where !(dr is DBNull)
select dc.Ordinal + "|" + dr);
そして運がない、
このエラーの発生を防ぐにはどうすればよいですか? null をまったく照会する必要がないため、この場合の目的の出力はレコードがありません。
ありがとう
編集:
混乱に基づいて、私のケースをよりよく説明します。
'ercDt' は linq クエリ (その linq クエリの結果は文字列であり、DBNull の非常にまれなケース) からのリストであるため、(ToList() メソッドを使用して) リストに変換されるため、'dr' を文字列にキャストできますが、問題は DBNull 値に起因します