C# 如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate
如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate。我有这样的代码,它做了一些事情,但实际上并没有更新数据库。我觉得我真的很快就明白了,但我错过了什么,或者我做得不对。下面是我的代码,如果有人能看到我没有做什么,请告诉我,我已经看了这7个小时了,无法理解C# 如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate,c#,C#,如何用UPDATESQL更新数据集,然后用C语言对数据库进行Udate。我有这样的代码,它做了一些事情,但实际上并没有更新数据库。我觉得我真的很快就明白了,但我错过了什么,或者我做得不对。下面是我的代码,如果有人能看到我没有做什么,请告诉我,我已经看了这7个小时了,无法理解 { DataSet oDS = new DataSet(); OleDbConnection conn = new OleDbConnection("Provider=Micros
{ 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'。好的,我明白你的意思了,它工作得很好。非常感谢:)这解决了我的问题。睡在这里,我来了。再次感谢!!