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

时间:2011-08-14 08:24:07

标签: c# ado.net dataset odbc dataadapter

如果我有一个名为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中看到它,但数据库不受影响,我尝试使用fill&amp;更新OdbcDataAdapter和OdbcCommandBuilder的方法?

3 个答案:

答案 0 :(得分:1)

尝试本文中显示的TableAdapter.Update过程:How to: Update Records in a Database

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

答案 1 :(得分:0)

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

adapter.Update(myDS.Tables[TableName]);
免责声明:就个人而言,我从不使用DataSet ...... YMMV。

答案 2 :(得分:0)

你应该在循环后键入两行

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