110,571
社区成员
发帖
与我相关
我的任务
分享
public ReturnResponse InsertOrder_Customer(InvoceOrder model)
{
ReturnResponse result = new ReturnResponse();
//开启事务
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(connectionString);//这行是仿照我说的那个链接的
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();//这行是仿照我说的那个链接的
cm.Connection = cnn;//这行是仿照我说的那个链接的
cnn.Open();//这行是仿照我说的那个链接的
System.Data.SqlClient.SqlTransaction trans = cnn.BeginTransaction(); //这行是仿照我说的那个链接的
try
{
var ordersn = CreateKingdeeSn(model.FTranType, model.FROB);
SqlParameter parReturn = new SqlParameter("@return", SqlDbType.Decimal);
parReturn.Direction = ParameterDirection.ReturnValue;
SqlParameter TotalPrice = new SqlParameter("@hanshuizongjine", SqlDbType.Decimal);
TotalPrice.Precision = 28;
TotalPrice.Scale = 10;
SqlParameter[] parameters = {
new SqlParameter("@FBillNo", SqlDbType.VarChar,100),
new SqlParameter("@Coustemor", SqlDbType.VarChar,50),
new SqlParameter("@CoustemorReceiveInfor", SqlDbType.VarChar,50),
new SqlParameter("@FDept", SqlDbType.VarChar,50),
new SqlParameter("@FEmp", SqlDbType.VarChar,50),
new SqlParameter("@FTranType", SqlDbType.VarChar,50),
new SqlParameter("@yewuriqi", SqlDbType.VarChar,50),
new SqlParameter("@supplier1", SqlDbType.VarChar,50),
new SqlParameter("@FROB", SqlDbType.VarChar,50),
new SqlParameter("@FFManager", SqlDbType.VarChar,50),
new SqlParameter("@FSManager", SqlDbType.VarChar,50),
new SqlParameter("@Rrmark", SqlDbType.VarChar,50),
new SqlParameter("@dinghuoren", SqlDbType.VarChar,50),
new SqlParameter("@dianhua", SqlDbType.VarChar,50),
new SqlParameter("@iskaipiao", SqlDbType.VarChar,50),
new SqlParameter("@caiwushunxuhao", SqlDbType.VarChar,50),
TotalPrice,
parReturn
};
parameters[0].Value = model.FBillNo;
parameters[1].Value = model.Customer;
parameters[2].Value = model.CoustemorReceiveInfor;
parameters[3].Value = model.FDept;
parameters[4].Value = model.FEmp;
parameters[5].Value = (int)KdOrderType.销售出库;// model.FTranType;
parameters[6].Value = model.BusinessDate;
parameters[7].Value = ""; //供应商
parameters[8].Value = model.FROB;
parameters[9].Value = model.FFManager;
parameters[10].Value = model.FSManager;
parameters[11].Value = model.Rrmark;
parameters[12].Value = model.dinghuoren;
parameters[13].Value = model.dianhua;
parameters[14].Value = model.iskaipiao;
parameters[15].Value = ordersn;// CreateKingdeeSn(model.FTranType, model.FROB);// model.caiwushunxuhao;
parameters[16].Value = model.totalprice;
DataSet ds = RunProcedure("AAInsertChuRuKudan", parameters, "icstockbill", 3000);
result = getErrorInfo((ErrorCode)Convert.ToInt32(parReturn.Value));
//日志
addLog(model.FBillNo + "|" + ordersn, model.FFManager, model.FTranType, result.ErrorCode, result.Msg, result.Success);
if (!result.Success)
{
return result;
}
//从表
foreach (var m in model.orderList)
{
//goods_sn = m.FNumber;
SqlParameter parReturn2 = new SqlParameter("@return", SqlDbType.Decimal);
parReturn2.Direction = ParameterDirection.ReturnValue;
SqlParameter FQty = new SqlParameter("@FQty", SqlDbType.Decimal);
FQty.Precision = 28;
FQty.Scale = 10;
SqlParameter FPrice = new SqlParameter("@FPrice", SqlDbType.Decimal);
FPrice.Precision = 28;
FPrice.Scale = 10;
SqlParameter FAmount = new SqlParameter("@FAmount", SqlDbType.Decimal);
FAmount.Precision = 28;
FAmount.Scale = 10;
SqlParameter TaxAmount = new SqlParameter("@Shuie", SqlDbType.Decimal);
TaxAmount.Precision = 28;
TaxAmount.Scale = 2;
SqlParameter[] parameters2 = {
new SqlParameter("@FNumber", SqlDbType.VarChar,100),
new SqlParameter("@UnitName", SqlDbType.VarChar,100),
FQty,
FPrice,
FAmount,
new SqlParameter("@FDCStock", SqlDbType.VarChar,50),
new SqlParameter("@FSCStock", SqlDbType.VarChar,50),
new SqlParameter("@FBillNo", SqlDbType.VarChar,50),
new SqlParameter("@Pihao", SqlDbType.VarChar,50),
new SqlParameter("@CaigouDate", SqlDbType.VarChar,50),
new SqlParameter("@Baozhiqi", SqlDbType.VarChar,50),
new SqlParameter("@Youxiaoqi", SqlDbType.VarChar,50),
new SqlParameter("@Dingdanhao", SqlDbType.VarChar,50),
new SqlParameter("@Rrmark", SqlDbType.VarChar,50),
TaxAmount,
parReturn2
};
parameters[0].Value = m.FNumber;
parameters[1].Value = m.UnitName.Trim();
parameters[2].Value = m.FQty;
parameters[3].Value = m.FPrice;
parameters[4].Value = m.FAmount;
parameters[5].Value = string.IsNullOrEmpty(m.FDCStock) ? "" : m.FDCStock.ToUpper(); //收货仓库
parameters[6].Value = string.IsNullOrEmpty(m.FSCStockID) ? "" : m.FSCStockID.ToUpper(); //发出仓库
parameters[7].Value = m.FBillNo;
parameters[8].Value = "";
parameters[9].Value = "";
parameters[10].Value = ""; // 保质期
parameters[11].Value = ""; //有效期
parameters[12].Value = m.orderNo;
parameters[13].Value = m.Rrmark;
parameters[14].Value = 0; //税额
//allgoods_sn += m.FNumber + ",";
DataSet ds2 = RunProcedure("AAInsertChuRuKudanEntry", parameters, "entry", 3000);
}
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);
//判断主表是否已经存在数据,存在则删除
if (IsExistOrder(model.FBillNo, (int)KdOrderType.销售出库))
{
DeleteOrder(model.FBillNo);
}
return result;
}
}
static void TransLate()
{
string connString = "";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.Transaction = tran;
try
{
///第一个
SqlCommand cmd1 = new SqlCommand();
SqlParameter[] parameters1 =
{
new SqlParameter("@FBillNo", SqlDbType.VarChar,100),
new SqlParameter("@caiwushunxuhao", SqlDbType.VarChar,50)
};
parameters1[0].Value = "";
parameters1[16].Value = "";
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.CommandText = "";
cmd1.ExecuteNonQuery();
///第二个
SqlCommand cmd2 = new SqlCommand();
SqlParameter[] parameters2 =
{
new SqlParameter("@FBillNo", SqlDbType.VarChar,100),
new SqlParameter("@caiwushunxuhao", SqlDbType.VarChar,50)
};
parameters2[0].Value = "";
parameters2[16].Value = "";
cmd2.CommandType = CommandType.StoredProcedure;
cmd2.CommandText = "";
cmd2.ExecuteNonQuery();
///第N个
///.........
///添加
cmd.Parameters.Add(cmd1);
cmd.Parameters.Add(cmd2);
///事务提交
tran.Commit();
}
catch (Exception ex)
{
///任何一个异常都回滚
tran.Rollback();
}
finally
{
///释放
tran.Dispose();
conn.Close();
}
}
}
是这个意思 ? public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet dataSet = new DataSet();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.Fill(dataSet, tableName);
connection.Close();
return dataSet;
}
}
private static SqlCommand BuildQueryCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = new SqlCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in parameters)
{
if (parameter != null)
{
// 检查未分配值的输出参数,将其分配以DBNull.Value.
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
command.Parameters.Add(parameter);
}
}
return command;
}