SQL Server Express中的默认值或绑定属性不起作用

本文关键字:绑定 属性 不起作用 默认值 Server Express SQL | 更新日期: 2023-09-27 18:19:52

我几乎完成了代码,但SQL中的默认值或绑定有问题。

这是我的数据库:

  • *Date_Contact DateTime*(默认值为getdate()
  • Readed, Status bit(默认值为0

所有这些都可以为null。

这是我的代码:

protected void btnSendMess_Click(object sender, EventArgs e)
{
    try {
        ContactUs contact_us = new ContactUs();
        contact_us.FullName = txtName.Text;
        contact_us.Email = txtEmail.Text;
        contact_us.Subject = txtSubject.Text;
        contact_us.Message = memoMess.Text;
        db.ContactUs.InsertOnSubmit(contact_us);
        db.SubmitChanges();
        lblNotice.Text = "Your message sent successfully! Thank you";
    }
    catch (Exception) {
        Response.Write("Error! Check your message again");
    }
}

当我签入数据库时,Date_ContactReadedStatusNULL。。。我的代码出了什么问题?

SQL Server Express中的默认值或绑定属性不起作用

问题是您要插入到DB中的对象已经包含这些列的值。即使它们都设置为null,从DB的角度来看,它仍然是绝对有效的值,这就是为什么插入null时忽略默认值的设置。

若要解决此问题,请将这些属性标记为"自动生成"(在LINQ模型设计器中设置相应的属性,或添加Column属性参数IsDbGenerated=true)。