如果我有一个名为myDs的DataSet,我在循环中通过直接访问来编辑其中的一个字段,如下所示:
for (int i = 0; i < myDS.Tables[TableName].Rows.Count; i++)
{
//some function or web method to get the id value of the record being updated
int n = getNewNumber();
//updating the dataset record according to some condition
if (n == 0)
{
myDS.Tables[TableName].Rows[i]["id"] = n;
myDS.Tables[TableName].Rows[i]["description"] = "some data";
}
else
{
myDS.Tables[TableName].Rows[i]["id"] = n;
myDS.Tables[TableName].Rows[i]["description"] = "new data";
}
}
我如何在数据库中进行这些更改,因为当我执行databind()时,我可以在GridView中看到它,但是数据库没有受到影响,我尝试使用OdbcDataAdapter和OdbcCommandBuilder的fill & update方法?
发布于 2011-08-16 01:28:31
尝试本文中所示的TableAdapter.Update流程:How to: Update Records in a Database。
此外,请确保您不仅拥有尝试连接到的数据库的必要访问权限,而且还具有更新所需表中记录的权限。您可能遇到SQL Server配置问题,导致您的代码无法更新。
发布于 2011-08-14 17:07:50
因为它是odbc,所以您可以使用OdbcDataAdapter
;然后调用:
adapter.Update(myDS.Tables[TableName]);
免责声明:就我个人而言,我从不将DataSet用于....什么都行。YMMV.
发布于 2015-11-16 22:50:21
您应该在循环后键入两行
myDS.AcceptChanges();
adapter.Update(myDS.Tables[TableName]);
https://stackoverflow.com/questions/7055799
复制相似问题