我是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>