質問

これらの(誤った)行を書き直す最良の方法は何ですか?

ブール? result = dr ["result"] == dbnull.value? null:convert.toint32(dr ["result"]);

...と...

dr ["result"] = result ?? dbnull.value;

どちらもコンパイルしません。

MySQLコネクタを使用していますが、たとえば設定させません。 dr["result"] = null; これが私が最初に試したことです。

mysql nullableを表すためのより適切な.netデータ型はありますか tinyint(1)?

役に立ちましたか?

解決

どうですか:

     dr["Hello"] = (object)result ?? DBNull.Value;
     bool? result = dr["result"] == DBNull.Value ? null : (bool?)(Convert.ToInt32(dr["result"]) != 0);

あなたの提案がコンパイルされない理由は、三元演算子の両方の代替案が ?: 同じタイプが必要です。 DBNull.Value 明らかにaと同じタイプではありません bool?. 。キャスト bool?object ただし、両方とも同じタイプになります。同様のルールが2行目に適用されます。

他のヒント

ストアドプロシージャまたはSQLクエリを使用している場合は、使用できます ISNULL() nullを処理するためのSQLの関数...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top