数据集表适配器管理器帮助
本文关键字:帮助 管理器 适配器 数据集 | 更新日期: 2023-09-27 18:09:49
我有一个简单的控制台应用程序,我试图更新客户和订单表,我得到一个错误消息:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Orders_Customers". The conflict occurred in database "CustomerOrder", table "dbo.Customers", column 'Id'.
The statement has been terminated.
我错过了什么明显的吗?
RsNorthwinds ds = new RsNorthwinds();
RsNorthwinds.CustomersRow cRow = ds.Customers.NewCustomersRow();
cRow.Name = "John Smith";
ds.Customers.AddCustomersRow(cRow);
RsNorthwinds.OrdersRow oRow = ds.Orders.NewOrdersRow();
oRow.CustomerId = cRow.Id;
oRow.OrderDate = "9/26/11";
ds.Orders.AddOrdersRow(oRow);
RsNorthwindsTableAdapters.TableAdapterManager tm =
new DataTableAdapterTester.RsNorthwindsTableAdapters.TableAdapterManager();
tm.OrdersTableAdapter = new DataTableAdapterTester.RsNorthwindsTableAdapters.OrdersTableAdapter();
tm.CustomersTableAdapter = new DataTableAdapterTester.RsNorthwindsTableAdapters.CustomersTableAdapter();
tm.UpdateAll(ds);
不管问题是在c#端,总是使用Sql Profiler来检查Sql Server端执行的Sql语句的顺序。这样您就可以快速找到问题所在。
UpdateAll方法可能以无效的顺序执行两个插入。使用表适配器而不是ORMapper,您会问自己这样的问题。