[英]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.