C# 更改数据库后如何保存数据集?

C# 更改数据库后如何保存数据集?,c#,ado.net,dataset,odbc,dataadapter,C#,Ado.net,Dataset,Odbc,Dataadapter,如果我有一个名为myDs的数据集,并且我在循环中通过直接访问编辑其中的字段,如下所示: 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 re

如果我有一个名为myDs的数据集,并且我在循环中通过直接访问编辑其中的字段,如下所示:

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";
    }
}
for(int i=0;i

当我执行databind()时,如何在GridView中看到的数据库中进行这些更改,但数据库不受影响,我尝试使用OdbcDataAdapter和OdbcCommandBuilder的填充和更新方法?

由于它是odbc,您可以使用;然后打电话:

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

免责声明:就个人而言,我从不将数据集用于。。。。任何东西YMMV.

尝试TableAdapter。本文中显示的更新过程:


此外,请确保您不仅具有对试图连接到的数据库的必要访问权限,而且具有更新所需表中记录的权限。您可能有SQL Server配置问题,无法更新代码。

您应该在循环后键入两行

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

您使用的是什么数据库及其哪个版本??该数据库是sybase,我使用odbc进行数据库连接,因此使用odbc时数据库引擎本身并不重要。我这样做了,但数据库没有根据新的更新进行更改,并且我的更新不能作为更新命令写入,因为数据应该在循环中更新因为主键(id)也被更新了,我不能在Where子句中使用它。这个链接很好,但我发现Update语句中存在问题,因为我在set子句和Where子句中都使用了主键,所以我不应该更改它。但是适配器在哪里?正如我在代码中看到的,OP只使用数据集。如果适配器不可用,或者可能是内部适配器,该怎么办?(数据集可能由Visual Studio自动生成,例如,将列表框绑定到新数据源时)。如果只有数据集对象可用,如何保存数据库?