我有一些困惑,我想清除它 - 我正在使用 ADO.NET 将值插入数据库。假设我想插入 10 项,如果我在插入第 5 项的数据时遇到错误,它应该回滚我插入到数据库中的任何内容。
我刚刚阅读了事务和回滚方法的概念,也尝试在程序中实现它,但它仍然插入 4 项并给我第 5 项的错误消息。它不会回滚插入查询。
事务和回滚方法是否解决了我的问题或者我需要使用其他替代方法。
这是我的代码,
for (int i = 0; i < itemLength - 1; i++)
{
//--- Start local transaction ---
myTrans = Class1.conn.BeginTransaction();
//--- Assign transaction object and connection to command object for a pending local transaction ---
_insertQry = Class1.conn.CreateCommand();
_insertQry.Connection = Class1.conn;
_insertQry.Transaction = myTrans;
_insertQry.CommandText = "INSERT INTO Product_PropertyValue(ItemNo, PropertyNo, ValueNo) VALUES (@ItemNo, @PropertyNo, @ValueNo)";
//_insertQry = new SqlCommand("INSERT INTO Product_PropertyValue(ItemNo, PropertyNo, ValueNo) VALUES (@ItemNo, @PropertyNo, @ValueNo)", Class1.conn);
_insertQry.Parameters.AddWithValue("@ItemNo", _itemNo[i]);
_insertQry.Parameters.AddWithValue("@PropertyNo", _propNo);
_insertQry.Parameters.AddWithValue("@ValueNo", _propValue);
_insertQry.ExecuteNonQuery();
myTrans.Commit();
}
谁能帮我?