2011-09-10 12 views
1

これらの(誤った)行を書き換える最善の方法は何ですか?ASP.NETでDBNullとnullを処理する

bool?結果= dr ["result"] == DBNull.Value? null:Convert.ToInt32(dr ["result"]);

...と...

DR [ "結果"] =結果? DBNull.Value;

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

私はMySqlコネクタを使用しています。これは、たとえば最初に試したものであるdr["result"] = null;を設定することはできません。

MySqlのnullableを表すのに適した.NETデータ型はありますかtinyint(1)

答えて

2

方法について:

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

コンパイルされません、あなたの提案は三項演算?:の両方の選択肢が同じ型を持たなければならないということである理由。 DBNull.Valueは明らかにbool?と同じタイプではありません。しかし、bool?objectにキャストすると、両方が同じタイプになります。 2番目の行にも同様のルールが適用されます。

-1

あなたは、あなたがNULLを処理するためにSQLのISNULL()機能を使用することができますストアドプロシージャまたはSQLクエリを使用している場合...

+1

は何それはいくつかのC#コードをコンパイルしていないとの藤堂がありますか? – Stilgar

関連する問題