我有一个关于在C#中插入和更新数据库的“小”问题。我正在使用表适配器进行插入和更新。该信息来自包含客户信息的XML文件。我的主键是customer_nr
,由XML文件提供。
现在我的问题是加载XML文件时,不知何故我想检查数据库是否已经具有特定的customer_nr
。如果存在customer_nr
,则更新数据库(如果客户更改地址应更新),否则如果customer_nr
不存在则插入新行(包含客户信息)。
我的测试代码:
(adapter.getCustomerNr
是表适配器中的SQL命令,我在其中选择所有customer_numbers
。)
DataSet1TableAdapters.customer_infoTableAdapter adapter = new DataSet1TableAdapters.customer_infoTableAdapter();
foreach (var t in customerInfo)
{
if (adapter.CustomerNr() != null)
{
adapter.Update(t.firstName,t.lastName,t.customerNr);
}
else {
adapter.Insert(t.customerNr, t.firstName, t.lastName);
}
}
因为我对C#很陌生,所以我很好奇这是否有效。但它认为应该有用。如果有人可以帮助我或给我一些示例如何继续下去,我将非常感激。
答案 0 :(得分:1)
在更新命令中,使其使用将在插入记录之前检查的存储过程:
IF NOT EXISTS(SELECT customer_nr FROM Customers where customer_nr = @customer_nr)
BEGIN
...(your query)
END