看标题大家就造这个是加了事务滴~~~至于什么叫事务 这个也是基础知识不解释,请自己百度。
#region ----------------执行SQL的事务处理-------------
/// <summary>
/// 执行SQL的事务处理,返回一个Bool值
/// </summary>
/// <param name="strSql">需要执行的SQL语句集合</param>
/// <returns></returns>
public static bool ExecSQLTran(string[] strSql)
{
SqlConnection conn = getSQLConnection();
SqlCommand cmd = new SqlCommand();
SqlTransaction myTran = conn.BeginTransaction();
try
{
cmd.Connection = conn;
cmd.Transaction = myTran;
foreach (string str in strSql)
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = str;
cmd.ExecuteNonQuery();
}
myTran.Commit();
return true;
}
catch
{
myTran.Rollback();
return false;
}
finally
{
myTran.Dispose();
cmd.Dispose();
conn.Dispose();
conn.Close();
}
}
/// <summary>此方法有问题,没经验证
/// 执行SQL的事务处理,返回一个Bool值
/// </summary>
/// <param name="strSql">需要执行的SQL语句集合</param>
/// <returns></returns>
public static bool ExecSQLTran(List<SqlSqlParameterList> sqlList)
{
SqlConnection conn = getSQLConnection();
SqlCommand cmd = new SqlCommand();
SqlTransaction myTran = conn.BeginTransaction();
try
{
cmd.Connection = conn;
cmd.Transaction = myTran;
foreach (SqlSqlParameterList sqlclass in sqlList)
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = sqlclass.Sql;
if (sqlclass.Parm != null)
{
foreach (SqlParameter par in sqlclass.Parm)
{
cmd.Parameters.Add(par);
}
}
cmd.ExecuteNonQuery();
}
myTran.Commit();
return true;
}
catch
{
myTran.Rollback();
return false;
}
finally
{
myTran.Dispose();
cmd.Dispose();
conn.Dispose();
conn.Close();
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static int ExecuteSqlTran(List<String> SQLStringList)
{
using (SqlConnection conn = getSQLConnection())//SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
int count = 0;
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n];
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
count += cmd.ExecuteNonQuery();
}
}
tx.Commit();
return count;
}
catch (Exception ex)
{
tx.Rollback();
return 0;
}
}
}
#endregion