【发布时间】:2015-05-17 12:08:12
【问题描述】:
我需要一些指导,了解为什么每次尝试添加产品时我的网站都会出现此错误。为了让您知道,我确实对数据库进行了一些更改,但在我这样做之后,我完全重新创建了数据库。我不断收到以下错误:
INSERT 语句与 FOREIGN KEY 约束“FK_dbo.OrderDetails_dbo.Orders_OrderId”冲突。冲突发生在数据库“MythData.mdf”、表“dbo.Orders”、列“Id”中。
这两个表是OrderDetail 和Orders。
订单:
CREATE TABLE [dbo].[Orders]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[CustomerId] INT NOT NULL,
[ProductId] INT NOT NULL,
[ShipName] NVARCHAR (MAX) NULL,
[ShipAddress] NVARCHAR (MAX) NULL,
[ShipCity] NVARCHAR (MAX) NULL,
[ShipState] NVARCHAR (MAX) NULL,
[ShipZip] NVARCHAR (MAX) NULL,
CONSTRAINT [PK_dbo.Orders] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.Orders_dbo.Customers_CustomerId]
FOREIGN KEY ([CustomerId])
REFERENCES [dbo].[Customers] ([Id]) ON DELETE CASCADE
);
CREATE NONCLUSTERED INDEX [IX_CustomerId]
ON [dbo].[Orders]([CustomerId] ASC);
OrderDetail表:
CREATE TABLE [dbo].[OrderDetails]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[OrderId] INT NOT NULL,
[ProductId] INT NOT NULL,
[TotalCost] DECIMAL (18, 2) NOT NULL,
[SubTypeMail] BIT NOT NULL,
[Quantity] INT NOT NULL,
CONSTRAINT [PK_dbo.OrderDetails] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.OrderDetails_dbo.Orders_OrderId]
FOREIGN KEY ([OrderId])
REFERENCES [dbo].[Orders] ([Id]) ON DELETE CASCADE
);
CREATE NONCLUSTERED INDEX [IX_OrderId]
ON [dbo].[OrderDetails]([OrderId] ASC);
还有弹出错误的类:
using (DataContext entities = new DataContext())
{
var orderDetail = entities.OrderDetails.Create();
decimal price = 0;
if (drpSub.SelectedValue == "Mailed")
{
price = 10;
orderDetail.SubTypeMail = true;
}
else
{
price = 5;
orderDetail.SubTypeMail = false;
}
Count = orderDetail.Quantity;
orderDetail.TotalCost = Count * price;
entities.OrderDetails.Add(orderDetail);
entities.SaveChanges(); << this line is the issue!
}
还包括确切的跟踪内容:
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_dbo.OrderDetails_dbo.Orders_OrderId”冲突。冲突发生在数据库“MythData.mdf”、表“dbo.Orders”、列“Id”中。
来源错误:
第 121 行:orderDetail.TotalCost = 计数 * 价格;
第 122 行:entities.OrderDetails.Add(orderDetail);
第 123 行:entities.SaveChanges();
第 124 行:while (Count != 0)
第 125 行:{源文件:c:\Users\arielle davenport\Desktop\pets\pets\MythPetsDatabase\MythPetsDatabase\Pages\Products.aspx.cs 行:123
我知道这很长,但感谢任何帮助。现在真的卡住了!
【问题讨论】:
-
如果你想插入一个条目到
OrderDetail- 你必须首先有一个Order连接到!! -
所以我要添加一个 Session["OrderId"]?不确定语法
-
@rellez89,您的问题解决了吗?
标签: c# sql asp.net sql-server tsql