首頁 >後端開發 >C++ >如何在 C# 中安全地將 DBNull 值轉換為字串?

如何在 C# 中安全地將 DBNull 值轉換為字串?

Susan Sarandon
Susan Sarandon原創
2025-01-25 10:07:101028瀏覽

How to Safely Cast DBNull Values to Strings in C#?

在 C# 中將空值轉換為字串

嘗試將 System.DBNull 物件轉換為 System.String 通常會導致錯誤,此錯誤通常發生在從資料庫檢索資料時。原始程式碼嘗試直接將 DBNull 值強制轉換為字串,導致異常。

為了解決這個問題,程式碼被修改為在轉換為字串之前檢查 DBNull:

<code class="language-csharp">if (accountNumber is DBNull)
{
    return string.Empty;
}
else
{
    return accountNumber.ToString();
}</code>

但是,使用泛型函數有更優雅的解決方案:

<code class="language-csharp">return ConvertFromDBVal<string>(accountNumber);</code>

函數定義如下:

<code class="language-csharp">public static T ConvertFromDBVal<T>(object obj)
{
    if (obj == null || obj == DBNull.Value)
    {
        return default(T); // 返回该类型的默认值
    }
    else
    {
        return (T)obj;
    }
}</code>

此函數優雅地處理將 DBNull 值轉換為所需類型的轉換,如果需要,則傳回該類型的預設值。

以上是如何在 C# 中安全地將 DBNull 值轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn