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

时间:2013-06-24 15:57:17

标签: c# asp.net sql linq binding

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

这是我的数据库:

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

所有这些都可以为空。

这是我的代码:

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 ...我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

问题是您插入到数据库中的对象已包含这些列的值。尽管它们都设置为null,但从DB的角度来看它仍然是绝对有效的值,这就是为什么插入空值而忽略默认设置。

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