access与事务
#region 根据用户ID生成定单
public static int GenerateDealById(string id)
{
if(Utils.IsNumber(id))
{
//ArrayList al = new ArrayList();
//al.Add( " ");
//al.Add( " ");
// DbHelperOleDb.ExecuteSqlTran(al);
using (TransactionScope scope = new TransactionScope())
{
TX.Components.BLL.orderinfo OrderInfo = new TX.Components.BLL.orderinfo();
orderinfo _orderinfo = new orderinfo();
_orderinfo.orderinfo_dealman = 0;
_orderinfo.orderinfo_paymethod = 2;
_orderinfo.orderinfo_postdate = DateTime.Now;
_orderinfo.orderinfo_remark = " ";
_orderinfo.orderinfo_shippeddate = DateTime.Now;
_orderinfo.orderinfo_status = 1;
_orderinfo.orderinfo_total = 0;
_orderinfo.orderinfo_uid = Convert.ToInt32(id);
int n = OrderInfo.Add(_orderinfo);//取订单id
TX.Components.BLL.shoppingcart ShoppingCart = new TX.Components.BLL.shoppingcart();
TX.Components.BLL.orderiteminfo OrderItemInfo = new TX.Components.BLL.orderiteminfo();
orderiteminfo _orderiteminfo = new orderiteminfo();
DataSet ds = ShoppingCart.GetList( "shoppingcart_uid= " + Convert.ToInt32(id));
DataRow[] dr = ds.Tables[0].Select();
int total = 0;
foreach (DataRow drs in dr)
{
_orderiteminfo.orderiteminfo_goodid = Convert.ToInt32(drs[ "shoppingcart_productid "]);
_orderiteminfo.orderiteminfo_orderid = n;
_orderiteminfo.orderiteminfo_postdate = DateTime.Now;
_orderiteminfo.orderiteminfo_quantity = Convert.ToInt32(drs[ "shoppingcart_quantity "]);
_orderiteminfo.orderiteminfo_title = drs[ "shoppingcart_title "].ToString();
_orderiteminfo.orderiteminfo_uid = Convert.ToInt32(id);
_orderiteminfo.orderiteminfo_unitprice = Convert.ToInt32(drs[ "shoppingcart_unitprice "]);
OrderItemInfo.Add(_orderiteminfo);
total += Convert.ToInt32(drs[ "shoppingcart_unitprice "]) * Convert.ToInt32(drs[ "shoppingcart_quantity "]);
}
_orderinfo.orderinfo_total = total;
OrderInfo.Update(_orderinfo);
scope.Complete();
return n;
}
}
else
{
return 0;
}
}
#endregion
“Microsoft.Jet.OleDb.4.0”提供程序不支持 ITransactionLocal 接口。本地事务不可用于当前提供程序。
怎么办啊,大家帮忙啊
[解决办法]
..access 不支持事务
请用 SQL SERVER
[解决办法]
lz 把 Access 当成啥了...
[解决办法]
哦耶,自己一步一步存,记下每步的返回值,如果其中一步失败了,把成功都还原---添加的删掉,删除的重加,修改的再改回来,问题是:还原的时候怎么办?我也不知道了
[解决办法]
Access 是支持事务处理的。
[解决办法]
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = "... ";
conn.Open();
System.Data.OleDb.OleDbTransaction trans = conn.BeginTransaction();
try
{
//你的数据操作..
trans.Commit();
}
catch(Exception e)
{
trans.Rollback();
}