1. ホーム
  2. asp.net

[解決済み] DBNull 型から String 型への変換は無効です。

2022-03-04 01:59:06

質問

この問題を受け取っています

型 'DBNull' から型 'String' への変換は有効ではありません。

501行目:hfSupEmail.Value = = 1. dt.Rows(0)("SupEmail")のようになります。

私は非常に初心者なので、何が正確な問題なのかよくわかりません。 どなたかご指導ください。

ありがとうございます。

解決方法は?

クイック&ダーティな修正方法。

hfSupEmail.Value = dt.Rows(0)("SupEmail").ToString()

またはC#の場合。

hfsupEmail.Value = dt.Rows[0]["SupEmail"].ToString();

この方法は、最終的なターゲットとソースデータがすでに文字列である場合に非常に有効です。 .ToString() の呼び出しはジッターによって最適化されて失敗する可能性が高く、もしそれがNULLなら、結果として生じる DBNull.Value.ToString() 式は、あなたが望む空の文字列を生成します。

しかし、文字列でない型を扱う場合、結局は 重要 のようなものでは、特に余分な作業が必要になります。 DateTime や数値のような特定の書式が必要な場合に使用します。国際化に関する懸念は、日付と数値の値の解析と合成が実際には驚くほど高価な操作であることを思い出してください。