for (int i = 0; i < Parameter.Count; i++) { flag[i] = Commit.Commit.executeTransaction(sql[i], (SqlParameter[])Parameter[i]); }
public static bool executeTransaction(string strSql, SqlParameter[] values) { bool flag = false; SqlCommand cmd = new SqlCommand(); cmd.Connection = _con;//命令对象 SqlTransaction myTransaction;//声明一个SQL事物类型 myTransaction = con.BeginTransaction();//基于一个连接初始化事物 try { cmd.Transaction = myTransaction;//指定SQL命令语句 的事物 cmd.CommandText = strSql;//给定命令语句 if (values!= null) { foreach (SqlParameter parameter in values) { if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&(parameter.Value == null)) { parameter.Value = DBNull.Value; } cmd.Parameters.Add(parameter); } cmd.ExecuteNonQuery();//执行SQL语句 } flag = true; } catch (Exception ex) { flag = false; throw ex; } finally { _con.Close(); } return flag; }
我先得到所有的sql语句执行的true 和false
当全部是true的时候提交
代码:
Commit.Commit.executeTransaction(flag);
我这样写代码行吗? public static bool executeTransaction(bool[] flag) { int i = 0; bool sp = false; SqlCommand cmd = new SqlCommand(); cmd.Connection = _con;//命令对象 SqlTransaction myTransaction;//声明一个SQL事物类型 myTransaction = con.BeginTransaction();//基于一个连接初始化事物 try { foreach (bool item in flag) { if (item == true) { i++; } else { i--; } } if (i == 4) { sp = true; myTransaction.Commit(); } else { myTransaction.Rollback(); } } catch (Exception ex) { sp = false; throw ex; } finally { _con.Close(); } return sp; } 我只要flag里面全部是 true就提交 不要执行什么语句?但是当全部是true的时候我看数据库没有数据?
翻阅古今