一张订单 分为单据头跟单据体
在保存订单的时候
单据头的内容放入A表 单据体的内容放入B表
A表与B表通过Fid字段关联`问题是
我在保存的时候单据头是一条sql语句
单据体为一组[/color[color=#000080]](因为这个订单里面可能是多个商品,比如显示器要不得2台、光驱要5个,
这个订单就有两行数量)sql语句
如果单据头有一条数量单据体也是一条数据的话那还好处理`用个事务`可以保证都能保存进去
但是数量行数多了我应该怎么处理呢
比如我先保存了单据头~保存单据体最后一条数据的时候 断网了` 没有保存进去`但是之前的已经保存成功了`这样就造成
订单信息不完整,请问这个应该怎么搞定呢?只求思路不要代码,请快捷键高手不要粘来粘去了`
在保存订单的时候
单据头的内容放入A表 单据体的内容放入B表
A表与B表通过Fid字段关联`问题是
我在保存的时候单据头是一条sql语句
单据体为一组[/color[color=#000080]](因为这个订单里面可能是多个商品,比如显示器要不得2台、光驱要5个,
这个订单就有两行数量)sql语句
如果单据头有一条数量单据体也是一条数据的话那还好处理`用个事务`可以保证都能保存进去
但是数量行数多了我应该怎么处理呢
比如我先保存了单据头~保存单据体最后一条数据的时候 断网了` 没有保存进去`但是之前的已经保存成功了`这样就造成
订单信息不完整,请问这个应该怎么搞定呢?只求思路不要代码,请快捷键高手不要粘来粘去了`
{
SqlConnection con = DBhelp.GetCon();
SqlCommand cmd = new SqlCommand();
SqlTransaction trans = con.BeginTransaction();
cmd.Connection = con;
cmd.Transaction = trans;
try
{
//订单表
cmd.CommandText = string.Format("insert into orders (customernum, ordersTime,userid,ordersdescribe) values ('{0}',Getdate(),'{1}','{2}') select @@identity", cid, loginid, beizhu);
oid=Convert.ToInt32(cmd.ExecuteScalar()); //添加订单明细表
string sql = " insert into ordersinfo (ordersid, productid, productnum, productDescribe)";
Dictionary<int, ordersinfo> dic = oi;
Dictionary<int, ordersinfo>.ValueCollection orin = dic.Values;
foreach (ordersinfo o in orin)
{ sql += " select " + oid + ",'" + o.Productid + "','" + o.Productnum + "','" + o.ProductDescribe + "' union"; }
sql = sql.Substring(0,sql.Length-5); cmd.CommandText = sql;
cmd.ExecuteNonQuery(); trans.Commit();
return true;
}
catch
{
trans.Rollback();
}
finally
{
con.Close();
}
return false;
}