如何使用Update-sql更新数据集,然后用C语言对数据库进行更新
本文关键字:更新 语言 数据库 然后 Update-sql 何使用 数据集 | 更新日期: 2023-09-27 17:58:49
如何使用Update-sql更新数据集,然后用C语言对数据库进行更新。我有这样的代码,它做了一些事情,但实际上并没有更新数据库。我觉得我真的很快就要弄清楚了,但我错过了什么,或者我做得不对。我的代码在下面,如果有人能看到我没有做什么,请告诉我,我已经看了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();
}
您的代码似乎没有什么问题,只需尝试一下:
try
{
oOrdersDataAdapter.Update(oDS, "Table");
}
catch (OleDbException e)
{
//Allows for update without violating interigty constainst
return;
}
Update方法只更新RowState等于已修改的行
将allrowState设置为DataRowState。修改并调用update方法将有助于
运行更新后,执行以下操作:
pTable.Clear()
oOrdersDataAdapter.Fill(pTable);
这将重新查询数据库并返回新结果。