アプリ版:「スタンプのみでお礼する」機能のリリースについて

ASP.NET初心者です。
WebMatrixを使っています。

DataSetから文字列を取得しようとして下記のコードを書いたところ、掲題のエラーが発生しております。

int i = 0;
string a = (string)cDataSet.Tables[0].Rows[i][0];

これを下記のように変更するとエラーが発生しません。

string a = (string)cDataSet.Tables[0].Rows[0][0];

これはなぜでしょうか?

ちなみに、キャストを行わない場合は
「型 'object' を型 'string' に暗黙的に変換できません」とエラーが出ます。

よろしくお願いします。

A 回答 (1件)

お世話になります。



憶測ですが、DataSet の DataTable の中に
DBNull 値のレコードが入っているのでは?

値が DBNull 値かどうか訊いた上でキャストするか、
またはこんな手段とか
a = System.Convert.ToString(ds.Tables[0].Rows[i][0]);
もしくは、as 演算子を使うなど。
http://www.atmarkit.co.jp/fdotnet/dotnettips/005 …

参考URL:http://msdn2.microsoft.com/ja-jp/library/system. …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!