Asp.net

從“DBNull”類型到“String”類型的轉換無效

  • April 25, 2014

我收到這個問題

從“DBNull”類型到“String”類型的轉換無效。

第 501 行:hfSupEmail.Value = 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您需要特定格式的諸如數值或數值之類的東西。請記住,國際化問題意味著解析和組合日期和數值實際上是非常昂貴的操作;做“額外”的工作來避免這些操作通常是值得的。

引用自:https://stackoverflow.com/questions/23283360