簡體   English   中英

在vb.net中的日期字段中檢查是否為空

[英]Checking for null in date field in vb.net

我有一個ASP.NET應用程序,當返回空日期值時會崩潰。

代碼行是:

excelWorksheet.Cells("A" & xlRowCounter).Value = IIf(IsDBNull(dRow("sysdate")), "", Format(dRow("sysdate"), "MM/dd/yyyy"))

錯誤信息:

錯誤:System.ArgumentException:參數'Expression'不是有效的值。

如何檢查空日期,並在應用程序中將其替換為“”?

嘗試改用If([condition], [true-part], [false-part])

If(IsDBNull(dRow("sysdate")), "", Format(dRow("sysdate"), "MM/dd/yyyy"))

如果您需要額外的檢查以測試所有內容,則可以執行以下操作:

If(dRow("sysdate") Is Nothing Or IsDBNull(dRow("sysdate")), "", String.Format("{0:MM/dd/yyyy}", dRow("sysdate")))

使用適當的If語句或新的if運算符。 if運算符的語法與舊IIF函數的語法完全相同,但僅評估其所需的參數。 IIF函數始終求值其所有參數。 因此,即使dRow(“ sysdate”)為null,也會對IIF函數的最后一個參數求值並導致錯誤。

我有同樣的問題,但我正在使用vb.net。 如果使用oledb從excel工作表中獲取值,請首先檢查單元格格式以獲取其值。 在這種情況下,格式是Excel工作表中的日期,而Chris Dunway提供的方式已經完成,伙計。

String類具有IsNullOrEmpty方法。 您可以先檢查該單元格,如果其為true,則用一個空字符串填充它。

您還可以使用Nullable DateTime:

Dim sysdate As DateTime? = dRow.Field(Of DateTime?)("sysdate")
Dim result As String = If(sysdate.HasValue, sysdate.Value.ToString("MM/dd/yyyy"), "")

我認為dRow是來自DataTable的DataRow

暫無
暫無

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

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