C# 如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate

C# 如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate,c#,C#,如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate。我有这样的代码,它做了一些事情,但实际上并没有更新数据库。我觉得我真的很快就明白了,但我错过了什么,或者我做得不对。下面是我的代码,如果有人能看到我没有做什么,请告诉我,我已经看了这7个小时了,无法理解 { DataSet oDS = new DataSet(); OleDbConnection conn = new OleDbConnection("Provider=Micros

如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate。我有这样的代码,它做了一些事情,但实际上并没有更新数据库。我觉得我真的很快就明白了,但我错过了什么,或者我做得不对。下面是我的代码,如果有人能看到我没有做什么,请告诉我,我已经看了这7个小时了,无法理解

            {   DataSet oDS = new DataSet();
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=StaffAs.accdb;");
        conn.Open();

        // Create the DataTable "SAssign" in the Dataset and the OrdersDataAdapter
       // UPDATE StaffAssignment SET StaffID = 4 WHERE (StaffID = 2)
        OleDbDataAdapter oOrdersDataAdapter = new  OleDbDataAdapter(new OleDbCommand("SELECT *     FROM StaffAssignment", conn));
        OleDbCommandBuilder oOrdersCmdBuilder = new  OleDbCommandBuilder(oOrdersDataAdapter);
        oOrdersDataAdapter.FillSchema(oDS, SchemaType.Source);
oOrdersDataAdapter.UpdateCommand = new OleDbCommand(String.Format("UPDATE StaffAssignment SET StaffID = 4 WHERE (StaffID = 2)"));
        DataTable pTable = oDS.Tables["Table"];
        pTable.TableName = "UpdateStaffA";

        oOrdersDataAdapter.Fill(pTable);

        try
        {
            oOrdersDataAdapter.Update(pTable);

        }
        catch (OleDbException e)
        { //Allows for update without violating interigty constainst
            return;
        }
        conn.Close();

}运行更新后,请执行以下操作:

pTable.Clear()
oOrdersDataAdapter.Fill(pTable);

这将重新查询数据库并返回新结果。

您的代码似乎没有问题,请尝试一下:

 try
 {
      oOrdersDataAdapter.Update(oDS, "Table");

 }
 catch (OleDbException e)
 { 
      //Allows for update without violating interigty constainst
      return;
 }

Update方法只更新其RowState等于modified的行


将all rowState设置为DataRowState.Modified并调用update方法将有助于您尝试一下,并让您知道。感谢堆。不幸的是没有工作,它抛出了一个InvalidOperationException,说Update找不到TableMapping['Table']或DataTable'Table'。好的,我明白你的意思了,它工作得很好。非常感谢:)这解决了我的问题。睡在这里,我来了。再次感谢!!