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

本文关键字:复制 方法 SqlDataAdapter Update 使用 | 更新日期: 2023-09-27 18:36:58

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

ID  Name   Price
------------------  
1   xyz     100
2   abc     200
3   pqr     300

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

DataTable dtTable=new DataTable("Product");

将更新的值添加到数据表 。那是

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

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

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

根据使用DataAdapters更新数据源,您必须自己指定更新命令,然后才能调用SQL数据适配器的Update函数!

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