簡體   English   中英

處理 C# 中的 null 值 - 將 excel 數據表上傳到數據庫

[英]Handling null values in C# - uploaded excel data sheet to database

我正在嘗試將電子表格中的項目讀入數據表,然后可以將其上傳到數據庫。

我遇到問題的列必須讀取 boolean 值。 但是,有時該字段為空。 當字段為空時,我需要將 null 存儲到此 boolean 值中,而不是 0 和 1。

這是原始代碼行:

  bool bool2 = Convert.ToBoolean(row["Bool_02"]);

當字段不為空時,這很有效。 但我無法首先檢查該字段是否為空,因為您無法將 null 存儲為 boolean 值。 我嘗試將其設置為可以為空的值,如下所示:

   bool? bool2 = Convert.ToBoolean(row["Bool_02"]);
     if(bool2 != true || false)
       {
          bool2 = null;
       }

但我收到一個錯誤 - object 不能從 DBNull 轉換為其他類型。

我必須接受列的輸入,檢查它是否為空 - 如果它為空,則將 null 保存在 bool 變量中。

我怎樣才能做到這一點?

但我無法首先檢查該字段是否為空,因為您無法將 null 存儲為 boolean 值。

當然可以,只需在嘗試轉換之前檢查該字段是否為 DBNull。

if(row["Bool_02"] is DBNull) return;
bool bool2 = Convert.ToBoolean(row["Bool_02"]);

如果您想將其填充到可為空的 boolean 中,則需要一個三元組。

bool? bool2 = row["Bool_02"] is DBNull ? null : Convert.ToBoolean(row["Bool_02"]);

未經測試,您可能需要對該三元組中的(bool?)進行類型轉換才能編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM