您的位置:首页 > 数据库

数据库访问的一些公共的方法01-执行SQL的事务处理

2015-08-07 15:27 489 查看
看标题大家就造这个是加了事务滴~~~至于什么叫事务 这个也是基础知识不解释,请自己百度。

#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
;

if (strsql.Trim().Length > 1)

{

cmd.CommandText = strsql;

count += cmd.ExecuteNonQuery();

}

}

tx.Commit();

return count;

}

catch (Exception ex)

{

tx.Rollback();

return 0;

}

}

}

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: