7

次のコード行があります

if (DBNull.Value.Equals(o) || o != null)

->のエラーが発生し続けるのoはどこですかobject o in row.ItemArray

Xml type "List of xdt:untypedAtomic" does not support a conversion from Clr type "DBNull" to Clr type "String".

私が理解していないのは、コードをステップスルーすると、これifがこれをキャッチして代替アクションを実行するはずですが、そうではないということです。

誰かが私のためにいくつかの光を当ててくれませんか。

ありがとうございました!

4

3 に答える 3

6

使ってみてください

Convert.IsDBNullメソッド。

于 2010-01-14T00:53:04.720 に答える
6

あなたの問題は実際には

DBNull.Value == null 
//is always false

DBNull は、dB から返された値を比較するための特別なクラスであるため、配列に両方が含まれている場合は、実際には null 条件と DBNull.value を確認する必要があります。

編集:コードをよく見て申し訳ありませんが、OR操作を逆にする必要があるかもしれません。o == null の場合、最初のステートメントは例外で爆発します。試す:

if (o != null || o == DBNull.Value) 
于 2010-01-13T21:53:49.147 に答える