1

我几乎完成了我的代码,但我在 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_Contact​​,Readed并且StatusNULL...我的代码有什么问题?

4

1 回答 1

1

问题是您插入数据库的对象已经包含这些列的值。即使它们都设置为 null,但从 DB 的角度来看,它仍然是绝对有效的值,这就是为什么在忽略默认设置的情况下插入 null。

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

于 2013-06-24T16:01:40.453 回答