我使用一個表LOG
其中有3列:Null值2005表
Login nvarchar(50)
Date int
Logout nvarchar(50)
現在,如果我不進入應將值存入Logout
列,然後存儲NULL
。但對我而言,它存儲爲" "
。
我已經給出截圖1我的表定義和截圖2
我使用一個表LOG
其中有3列:Null值2005表
Login nvarchar(50)
Date int
Logout nvarchar(50)
現在,如果我不進入應將值存入Logout
列,然後存儲NULL
。但對我而言,它存儲爲" "
。
我已經給出截圖1我的表定義和截圖2
表中的數據可能是在您使用INSERT INTO日誌插入查詢(登錄,日期,註銷)VALUES(...)和一個「」作爲註銷字段的值。檢查你的插入語句,並確認你沒有犯這個錯誤。
替代的列表來解決這個問題:
謝謝。
實際情況是如果我忘記插入值,那麼它必須是**「NULL」** 。爲此,我可以使用默認值。但我想檢查該字段是否爲NULL(或)NOT **。我如何檢查這個...? – 2013-05-03 06:14:34
請看你的應用程序文本框,我認爲有''空字符串放或請給我你的插入查詢。 – Anvesh 2013-05-03 06:17:23
Sry @Anu,我沒有插入值。我將使用註銷時間更新表..... Cmd = new SqlCommand(「update ActLog set Logout ='」+ TimeOut.Text +''where Date ='「+ curoutdate +」'「,Con); – 2013-05-03 06:24:49
試試看看這個代碼。
if (!string.IsNullOrEmpty(Impdate.ToString()))
{
cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = Impdate;
}
else
{
cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = SqlDateTime.Null;
}
嘗試這樣
if (!string.IsNullOrEmpty(Impdate.ToString()))
{
cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = Impdate;
}
else
{
cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = "";
}
是什麼呢默認值? – 2013-05-03 05:46:43
你可以發送插入查詢嗎? – 2013-05-03 05:47:10
您確定DAL *不是*插入'「」'(或'「」')嗎?另外,考慮爲列使用*更合適的數據類型*(例如DATETIME2或DATETIMEOFFSET) - 這也將「修復」
問題,收集缺少的相關信息(準確的登錄/註銷日)並允許合理的排序。我甚至不會問爲什麼「日期」列是(身份)PK列。 – user2246674 2013-05-03 05:47:17