以下代碼示例
public ReturnResponse InsertOrder_Customer(InvoceOrder model)
{
ReturnResponse result = new ReturnResponse();
var goods_sn = ""; //記錄不存在的商品
string allgoods_sn = ""; //記錄分錄表所有的商品
//開啓事務
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(connectionString);//這行是仿照我說的那個鏈接的
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();//這行是仿照我說的那個鏈接的
cm.CommandType = CommandType.StoredProcedure;
cm.Connection = cnn;//這行是仿照我說的那個鏈接的
cnn.Open();//這行是仿照我說的那個鏈接的
System.Data.SqlClient.SqlTransaction trans = cnn.BeginTransaction(); //這行是仿照我說的那個鏈接的
cm.Transaction = trans;
try
{
var ordersn = CreateKingdeeSn(model.FTranType, model.FROB);
cm.CommandText = "AAProcName";
cm.Parameters.AddWithValue("@FBillNo", model.FBillNo);
cm.Parameters.AddWithValue("@Coustemor", model.Customer);
cm.ExecuteNonQuery();
var returnval = cm.Parameters["@return"].Value.ToString();
result = getErrorInfo((ErrorCode)Convert.ToInt32(returnval));
//日誌
addLog(model.FBillNo + "|" + ordersn, model.FFManager, model.FTranType, result.ErrorCode, result.Msg, result.Success);
//從表
foreach (var m in model.orderList)
{
goods_sn = m.FNumber;
cm.CommandText = "AAProcNameEntry";
cm.Parameters.Clear();
cm.Parameters.AddWithValue("@FNumber", m.FNumber);
cm.Parameters.AddWithValue("@UnitName", m.UnitName.Trim());
cm.ExecuteNonQuery();
}
//日誌
addLog(allgoods_sn, "", "銷售發票分錄", result.ErrorCode, result.Msg, result.Success);
trans.Commit(); //提交事務
result.Success = true;
result.ErrorCode = (int)ErrorCode.成功;
result.Msg = ordersn;// "操作成功!";
return result;
}
catch (Exception ex)
{
trans.Rollback();//回滾事務
result.Success = false;
result.ErrorCode = (int)ErrorCode.數據操作異常;
var Msg = "數據操作異常:" + ex.Message;
result.Msg = "系統正忙,請稍後再試";
addLog(model.FBillNo, model.FFManager, model.FTranType, result.ErrorCode, Msg, result.Success);
return result;
}
}
關於調用存儲過程-事務使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.