none
如何在SQL数据库中的datetime类型中写“NULL”? RRS feed

  • 问题

  • 各位大侠:
      表中有一个“注册时间”的列,其值类型为datetime,并允许为空。想改变某个的注册时间为“NULL”而不是“”,请问怎么实现?
      谢谢。


    youl
    2010年3月6日 7:06

答案

全部回复

  • 你好!
    不太明白楼主的意思。如果在数据库中添加可以直接付null值或不插入该列,若在asp.net中插入则可以用DBNull.value赋值。
    2010年3月6日 7:12
  • 你好,是这样的。在ASP中使用一个方法如:
    private void Upd注册(int Aid, DateTime Anotime)
        {
            using (SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\报名系统.mdf;Integrated Security=True;User Instance=True"))
            {
                SqlCommand comm = new SqlCommand("UPDATE 注册信息 SET 注册时间=@注册时间 where id=@id", conn);
                comm.Parameters.AddWithValue("@id", Aid);
                comm.Parameters.AddWithValue("@注册时间", Anotime);
                conn.Open();
                comm.ExecuteNonQuery();
            }
        }
    然后通过按钮来达到取消注册的目的。

    protected void btn取消注册_Click(object sender, EventArgs e)
        {
            DateTime notime =Convert.ToDateTime("NULL");
            Upd注册(ID, notime);
         }


    结果出错,提示信息如下:
    该字符串未被识别为有效的 DateTime。有一个从索引 0 处开始的未知字。

    2010年3月6日 8:51
  • sql="update tableName Set xx = null Where xxid=xxx"
    cmd.ExecuteNonQuery
    【孟子E章】
    • 已标记为答案 youer3 2010年3月7日 4:57
    2010年3月6日 8:55
    版主
  • 不能给datetime赋空值,请用孟版主的办法或用sqlParameters传值
    2010年3月6日 8:59
  • datetime不能直接付空值,把DBNull.value作为参数传进
    咯咯
    2010年3月6日 16:58