数据库访问的一些公共的方法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
#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
相关文章推荐
- 数据库访问的一些公共的方法02-返回DataReader,DataSet,DataTable等对象
- oracle_over
- c 实现字符串反转(参考redis源码)
- mysql数据表字符集是latin1,项目是utf8,怎么从数据表中读取数据而保证不乱码?
- servlet处理数据库表中所有数据,在jsp页面表格中用jst forEach输出解决办法
- MongoDB Mongodb.conf 配置 Auth
- 数据库访问的一些公共的方法01-创建SQL数据库或Acess数据库等连接对象
- System.Data.SqlClient.SqlException (0x80131904): 查询已取消,因为此查询的估计开销(302)超出了配置的阈值 300
- pl sql多表插入及更新
- mysql 数据表读锁机制详解
- mongodb 常用命令
- sql service重置自动增长字段数字的方法
- 高效的SQLSERVER分页查询(推荐)
- mysql 学习笔记
- SQL里动态生成列
- 控制台应用程序连接数据库
- SQL公用方法-根据日期格式字符串返回年季度开始和结束日期
- Oracle Clob使用
- redis 在linux下的安装
- MySql绿色版安装配置