c#database update / insert with tableadapter

时间:2011-04-13 20:37:29

标签: c# database

我有一个关于在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#很陌生,所以我很好奇这是否有效。但它认为应该有用。如果有人可以帮助我或给我一些示例如何继续下去,我将非常感激。

1 个答案:

答案 0 :(得分:1)

在更新命令中,使其使用将在插入记录之前检查的存储过程:

IF NOT EXISTS(SELECT customer_nr FROM Customers where customer_nr = @customer_nr)
    BEGIN

        ...(your query)

    END