#region 拼接sql语句并使用Transaction public static bool ExecuteTransactionInsert(DataTable dt, int batchSize) { int count = dt.Rows.Count; StringBuilder sql = new StringBuilder(220); bool flag = false; SqlConnection cn = null; SqlCommand cmd = null; try { cn = new SqlConnection(connectionString); cmd = new SqlCommand(); cmd.Connection = cn; cn.Open(); for (int i = 0; i < count; i += batchSize) { sql.Append("begin try;begin tran;"); for (int j = i; j < i + batchSize && j < count; j++) { sql.AppendFormat("Insert into TestTable(Id, Name) Values({0}, '{1}');", dt.Rows[j]["Id"], dt.Rows[j]["Name"]); } sql.Append("commit tran;end try/nbegin catch/nrollback tran/n end catch"); //LogHelper.Info(sql.ToString()); cmd.CommandText = sql.ToString(); cmd.ExecuteNonQuery(); sql.Clear(); } flag = true; } catch (Exception ex) { LogHelper.Error(sql.ToString(), ex); return false; } finally { if (cn != null) { if (cn.State == ConnectionState.Open) { cn.Close(); } cn.Dispose(); } if (cmd != null) cmd.Dispose(); } return flag; } #endregion #region 拼接sql语句并使用Transaction pub 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交