C#
private void InsertMultiBoardBarcodeRec()
{ //判断列表数据不能为空.....
if (dataGridView1.RowCount==0)
{
MessageBox.Show("打印列表行为空,请获取拼板SN...", "提示窗口....");
return;
}
List<Models.MultiBoardBarCoeRec> listPrintLists = new List<Models.MultiBoardBarCoeRec>();
//获取列表数添加到listPrintLists集合....
//获取服务器时间
Models.GetSQLServerNowTime getSQLServerNowTime = new Models.GetSQLServerNowTime();
getSQLServerNowTime = DalGetSQLServerNowTime.SQLServerNowTime(getSQLServerNowTime);
string da = getSQLServerNowTime.NowTime;
foreach (DataGridViewRow dgr in dataGridView1.Rows)
{
if (dgr.Cells[4].Value == null)
{
break;
}
listPrintLists.Add(new Models.MultiBoardBarCoeRec {
WONO = dgr.Cells[5].Value.ToString(),
ProductGroupID = ProductGroupID,
FirstMBBC = dgr.Cells[4].Value.ToString(),
EndMBBC = dgr.Cells[4].Value.ToString(),
OutputDate = da,
WorkerID=texWhoPrint.Text.Trim(),
});
}
DalProductInfo.MultiBoardBarCoeRec(listPrintLists);
//bool tkdo = DalProductInfo.MultiBoardBarCoeRec(barCoeRec);
}
public bool MultiBoardBarCoeRec(List<Models.MultiBoardBarCoeRec> objBoardBarCoeRec) { //string[] aa = { "aa","bb","cc" }; //定义一个List集合,用于保存多条SQL语句 List<string> sqlList = new List<string>(); //sqlList.Add(aa[0].ToString()); //sqlList.Add(aa[1].ToString()); for (int i = 0; i < objBoardBarCoeRec.Count; i++) { string sqlStr = "Insert MultiBoardBarCodeRec (WONO,ProductGroupID,FirstMBBC,EndMBBC,OutputDate,WorkerID) "; sqlStr += "Values(‘{0}‘,‘{1}‘,‘{2}‘,‘{3}‘,‘{4}‘,‘{5}‘)"; sqlStr = string.Format(sqlStr, objBoardBarCoeRec[i].WONO, objBoardBarCoeRec[i].ProductGroupID, objBoardBarCoeRec[i].FirstMBBC, objBoardBarCoeRec[i].EndMBBC, objBoardBarCoeRec[i].OutputDate, i); sqlList.Add(sqlStr.ToString()); } return SQLHelper.UpdateByTran(sqlList); }
/// <summary> /// 启用事务同时提交多条SQL语句 /// </summary> /// <param name="sqlList">sql语句集合</param> /// <returns>返回bool类型,代表事务执行是否成功</returns> public static bool UpdateByTran(List<string> sqlList) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; try { conn.Open(); cmd.Transaction = conn.BeginTransaction();//开启事务 //循环执行Sql语句 foreach (var itemSql in sqlList) { cmd.CommandText = itemSql; cmd.ExecuteNonQuery(); } cmd.Transaction.Commit();//提交事务(真正的从数据库中修改了数据) return true; } catch (Exception ex) { if (cmd.Transaction != null) cmd.Transaction.Rollback();//回滚事务(返回撤消“正常的任务”) throw new Exception("调用事务方法出现错误:" + ex.Message); throw; } finally { if (cmd.Transaction != null) { cmd.Transaction = null;//清空事务 } conn.Close(); } }
原文:https://www.cnblogs.com/Striveyoungfellow/p/12526765.html