【发布时间】:2011-12-31 01:14:26
【问题描述】:
我编写了一个简单的测试来检查我的 dataAdapter 代码。我连接到 SQL Server 数据库,填写数据表,连续更改一个值,然后调用 da.Update(table) 将更改发送回 SQL Server。该表有一个主键。完全不知道为什么这不起作用......(见代码)
connectionToSQL = new SqlConnection(SQLConnString);
connectionToSQL.Open();
var wktbl = new DataTable();
var cmd = new SqlCommand("SELECT * FROM TAGS$",connectionToSQL);
var da = new SqlDataAdapter(cmd);
var b = new SqlCommandBuilder(da);
da.Fill(wktbl);
wktbl.Rows[3][2] = "5";
wktbl.AcceptChanges();
da.Update(wktbl);
【问题讨论】:
-
你不能这样更新。在这里填写数据表中的值之后,您对数据表所做的任何更改都只会与它有关。而且您必须再次编写一些查询以进行类似的更新以进行选择。并调用 ExecuteNonQuery() 来执行更新。
-
@skk:
SqlDataAdapter自动构建 UPDATE 查询,然后da.Fill应该使用它来更新数据库。 @user1051076 可能是对AcceptChanges的调用打破了这一点,因为它将所有行状态重置为未更改...
标签: c# sql dataadapter