使用SqlDataAdapter.Update方法时复制表行

时间:2013-10-25 06:14:48

标签: c# sql-server ado.net datatable duplicates

在我的项目中,我有“产品”表。

ID  Name   Price
------------------  
1   xyz     100

2   abc     200

3   pqr     300

在我的c#代码中,我想使用SqlAdapter更新我的表行。 为此,我创建了一个数据表

DataTable dtTable=new DataTable("Product");

将更新的值添加到Datatable。即

ID  Name   Price
    ------------------  
    1   aaa     100

    2   bbb     200

    3   ccc     300

我使用以下步骤使用此值更新数据库中的表

SqlConnection myLocalConnection = new SqlConnection(_ConnectionString);
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("Select * from " + dtTable.TableName, myLocalConnection);
 SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(mySqlDataAdapter);

     mySqlDataAdapter.Update(dtTable);

但是在执行此更新功能时,在数据库中所有表都是重复的。

ID  Name   Price
------------------  
1   xyz     100

2   abc     200

3   pqr     300

4   aaa     100

5   bbb     200

6   ccc     300

我只想替换现有数据。为什么这些行在此表中重复。 请帮忙

1 个答案:

答案 0 :(得分:0)

根据Updating Data Sources with DataAdapters,您必须自己指定更新命令,然后可以调用sql数据适配器的Update函数!

SqlDataAdapter mySqlDataAdapter = 
     new SqlDataAdapter("Select * from " + dtTable.TableName, myLocalConnection);
dataAdpater.UpdateCommand = new SqlCommand("UPDATE ...", connection);
mySqlDataAdapter.Update(dtTable);