【发布时间】:2016-04-29 11:48:23
【问题描述】:
我有一个函数 (addItem),它应该向我的数据库添加一个新行。但是当函数运行时,它给了我这个错误:
{"The INSERT statement conflicted with the FOREIGN KEY constraint \"FK1\". The conflict occurred in database \"C:\\USERS\\ALAL0006\\DOWNLOADS\\SOA PROJEKT\\SOA PROJEKT\\SOA PROJEKT\\APP_DATA\\DATABASE1.MDF\", table \"dbo.Category\", column 'Id'.\r\nThe statement has been terminated."}
控制器:
public ActionResult Create()
{
IEnumerable<SelectListItem> categories = tbl.Category.Select(c => new SelectListItem
{
Value = SqlFunctions.StringConvert((double)c.Id).Trim(),
Text = c.Namn
});
//ViewBag.Category = new SelectList(tbl.Category, "Id", "Namn");
ViewBag.Id = categories;
return View();
}
[HttpPost]
public ActionResult Create(Vara newItm)
{
if (ModelState.IsValid)
{
srvc.addItem(newItm.Namn, newItm.Pris, newItm.CategoryID);
return RedirectToAction("Create");
}
else
{
return View();
}
}
服务:
public void addItem(string name, int price, int ctgID)
{
Database1Entities1 tbl = new Database1Entities1();
Vara newItm = new Vara() {
Namn = name,
Pris = price,
CategoryID = ctgID,
};
tbl.Vara.Add(newItm);
try
{
tbl.SaveChanges();
}
cshtml文件:
<div class="form-group">
@Html.LabelFor(model => model.Namn, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Namn)
@Html.ValidationMessageFor(model => model.Namn)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Pris, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Pris)
@Html.ValidationMessageFor(model => model.Pris)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CategoryID, "CategoryID", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("Id", "Välj kategori")
@Html.ValidationMessageFor(model => model.CategoryID)
</div>
</div>
类别数据库:
CREATE TABLE [dbo].[Category] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Namn] VARCHAR (MAX) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC));
物品数据库:
CREATE TABLE [dbo].[Vara] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Namn] VARCHAR (MAX) NOT NULL,
[Pris] INT NOT NULL,
[CategoryID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK1] FOREIGN KEY ([CategoryID]) REFERENCES [dbo].[Category] ([Id]));
我不确定我应该做些什么来解决这个问题。有什么想法吗?
【问题讨论】:
-
检查 catID 作为主键存在于类别表中。
-
@Zaki 确实存在,在Category表中有名字“Id”,是主键。
-
非常感谢@StephenMuecke
标签: c# asp.net asp.net-mvc linq wcf