如何使用update sql更新DataSet,然后在C sharp中更新数据库。我有这样的代码它做了一些事情,但实际上并没有更新数据库。我觉得我真的很接近搞清楚这一点,但我错过了一些东西,或者我没有做正确的事情。我的代码在下面,如果有人能看到它是什么我不在做请让我知道,我一直在看这个过去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();
}
答案 0 :(得分:0)
您的代码似乎没有任何问题,只需尝试一下:
try
{
oOrdersDataAdapter.Update(oDS, "Table");
}
catch (OleDbException e)
{
//Allows for update without violating interigty constainst
return;
}
答案 1 :(得分:0)
更新方法只更新其RowState等于修改
的行将所有rowState设置为DataRowState.Modified并调用update方法将帮助您
答案 2 :(得分:-1)
运行更新后,请执行以下操作:
pTable.Clear()
oOrdersDataAdapter.Fill(pTable);
这将重新查询数据库并返回新结果。