我有這個代碼有點堵在後臺代碼形式:確定是否日期字段包含NULL值
using (SqlConnection connection1 = new SqlConnection(str))
{
using (SqlCommand cmd = new SqlCommand("usp_select_claim_id_MERGE", connection1))
{
cmd.CommandType = CommandType.StoredProcedure;
connection1.Open();
{
using (SqlDataReader DT = cmd.ExecuteReader())
{
//Format the Orig Open Date to strip off the time and just leave the date
if ((DT["Orig_Open_Date"]) == null)
{
OrigOpenDt = Convert.ToDateTime("1/1/1900");
OrigOpenDt2 = "";
}
else
{
OrigOpenDt = Convert.ToDateTime(DT["Orig_Open_Date"]);
OrigOpenDt2 = OrigOpenDt.ToString("MM/dd/yyyy");
}
當它擊中IF語句,它告訴我這是假的,所以代碼跳轉到「else」語句。但是,當我看到SQL Server表在討論記錄,它看起來像這樣(實際上,我只是在看的第一個記錄如下圖所示):
在我看來就像Orig_Open_Date (一直到右邊的列)都有NULL。
如果我在Orig_Open_Date中找到一個實際存在日期的記錄,它可以正常工作。如果沒有日期,它仍然會嘗試運行「else」語句,所以我的「if」語句必須是錯誤的。
無可否認,我是C#n00b。我在這裏做錯了什麼?
當您遇到這種情況時,請進行調試並查看值。然後你會弄清楚該怎麼做。因此,請查看(DT [「Orig_Open_Date」])的值。 –
我先試了一下。在即時窗口中,我輸入了?DT [「Orig_Open_Date」],並吐出了「{}」(不帶引號)。我不知道該怎麼做。 –