-2

我正在使用一个LOG有 3 列的表:

  • Login nvarchar(50)
  • Date int
  • Logout nvarchar(50)

现在,如果我没有在Logout列中输入值,那么NULL应该存储。但对我来说,它存储为" ".

我在屏幕截图 1 中给出了我的表定义,在屏幕截图 2 中给出了表数据。

在此处输入图像描述

在此处输入图像描述

4

4 回答 4

0

试试这个代码。

if (!string.IsNullOrEmpty(Impdate.ToString()))
                {
                    cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = Impdate;
                }
                else
                {
                    cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = SqlDateTime.Null;
                }
于 2013-05-03T06:38:38.803 回答
0

可能在 INSERT 查询中,您使用 INSERT INTO log (Login, Date, Logout) VALUES(...) 和 "" 作为 Logout 字段的值。检查您的插入语句并确认您没有犯此错误。

于 2013-05-03T05:56:24.140 回答
0

像这样试试

if (!string.IsNullOrEmpty(Impdate.ToString()))
                {
                    cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = Impdate;
                }
                else
                {
                    cmd.Parameters.Add("@Logout", SqlDbType.Date).Value = "";
                }
于 2013-07-18T06:49:41.987 回答
0

解决此问题的替代方案列表:

  1. 将默认值设置为该列。
  2. 在插入查询中提供不带“NULL”的 NULL。
  3. 如果找到 '' 则选择数据,然后为 NULL。(插入过程中没有变化)
  4. 如果找到 '' 则更新当前数据,然后设置 NULL。

谢谢。

于 2013-05-03T06:08:51.370 回答