(0x80131904):无法将值NULL插入列

时间:2016-11-27 07:48:00

标签: sql-server entity-framework exception model-view-controller

我是MVC的新手,正在做我的第一个培训项目。最近我在将数据插入表时遇到异常,好像我找不到解决方案:

首先我创建了表:

CREATE TABLE [dbo].[tblPC] 
(
    [PCID]   INT           NOT NULL,
    [PCName] NVARCHAR (50) NOT NULL,
    [PCDate] DATETIME      NOT NULL
)

然后是具有属性的模型:

[Table("tblPC")]
public class PC
{
    [Required]
    public int PCID { get; set; }
    [Required]
    [StringLength(3)]
    [RegularExpression("^[a-z]{2,2}[0-9]{1,1}$")]
    public string PCName { get; set; }
    [Required]
    public DateTime PCDate { get; set; }
}

然后我的上下文类:

public class PC_DB_Context : DbContext
{
    public DbSet<PC> PCs { get; set; }
}

并采取行动:

 public ActionResult Submit(PC obj)
 {
        if (ModelState.IsValid)
        {
            PC_DB_Context PCContext = new PC_DB_Context();
            PCContext.PCs.Add(obj);
            PCContext.SaveChanges();
            return View("PC", obj);
        }
        else 
        {
            return View("EnterPC", obj);
        }
}

我无法避免异常:

  

SqlException(0x80131904):无法将值NULL插入“PCID”列,表'MyDB.dbo.tblPC';列不允许空值。 INSERT失败。

当我将PCID上的身份标志设置为true并且设置增量一切正常时,但如果我不想要它会怎样......

这是我的cshtml:

<body>
    <div> 

        <form action="submit" method="post">
            PC ID: <input name="PCID" type="number" value="@Model.PCID" />  @Html.ValidationMessageFor(x => x.PCID)<br />
            PC Name: <input name="PCName" type="text" value="@Model.PCName" />   @Html.ValidationMessageFor(x => x.PCName) <br />
            PC Date: <input name="PCDate" type="datetime" value="@DateTime.Now" /><br />
            <input id="Submit1" type="submit" value="submit" /><br />
        </form>
        <br />
        @*@Html.ValidationSummary()*@
    </div>
</body> 

0 个答案:

没有答案