簡體   English   中英

Excel工作表中的空DateTime使用C#添加到數據庫

[英]null DateTime from excel sheet adding to database using C#

我在獲取值傳遞到此變量時遇到問題。 它來自excel文件(使用Aspose)為null,但DateTime除外。 我添加了DateTime嗎? 變量,但這無濟於事。 我嘗試了幾種我知道的方法,但是它們都不對傳入的空值起作用。 如果該值為空,則必須保持為空,數據庫允許該值為空。 有人可以幫我這個忙嗎? 有沒有更簡單的方法可以做到這一點?

嘗試1

EnterDate = Convert.ToDateTime(dr["EnterDate"]);
EnterDate = (EnterDate.HasValue) ? EnterDate : DateTime.Now;

試試2

RepealedDate = (dr["RepealedDate"] == null) ? (DateTime?)null : Convert.ToDateTime(dr["RepealedDate"]);

以此替換第二次嘗試:

DateTime? repealedDate = (dr["RepealedDate"] == null) ? 
    null : Convert.ToDateTime(dr["RepealedDate"]);

您不能將null轉換為DateTime? 要解決該問題,您必須將變量定義為DateTime?類型DateTime?

我在網絡上找不到一個好的解決方案。 所以我嘗試自己處理。 我從Excel Sheet中將數據作為字符串,然后控制它是否為空。 如果將其設置為null則將其轉換為DateTime,如下所示。 這避免了我在Convert函數中可能發生的異常。

StartDate = dr[2].ToString().Trim();

if (StartDate != "")
   r.Data.StartDate = Convert.ToDateTime(StartDate);
else
   r.Data.StartDate = null;

暫無
暫無

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

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