如何在更改数据库后保存DataSet?

如果我有一个名为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的填充和更新方法?

尝试本文中显示的TableAdapter.Update过程: 如何:更新数据库中的记录 。

此外,请确保您不仅可以访问要连接的数据库,还可以更新所需表中的记录。 您可能遇到阻止代码更新的SQL Server配置问题。

因为它是odbc,你可以使用OdbcDataAdapter ; 然后打电话:

 adapter.Update(myDS.Tables[TableName]); 

免责声明:就个人而言,我从不使用DataSet …. 因人而异。

你应该在循环后键入两行

 myDS.AcceptChanges(); adapter.Update(myDS.Tables[TableName]);