自己写的实现数据库事务的简单方法ExecuteSqlTran()
2004-10-13 12:49
696 查看
做项目时需要实现数据库的事务,觉得每次用SqlTransaction 写代码,太麻烦了,就想总结一个通用的方法放在数据层,以便复用.就自己写了简单的方法.可满足一般情况下的需求.:)
同时执行两条SQL语句的方法:
public static void ExecuteSqlTran(string SQLString1,string SQLString2)
{
using (SqlConnection conn = new SqlConnection(strDBConnectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection=conn;
SqlTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
cmd.CommandText=SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText=SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
如果有多条SQL语句需要放在一个事务里实现执行,就用下面这个方法:
/// <summary>
/// 实现多SQL语句执行的数据库事务方法
/// </summary>
/// <param name="SQLStringList">SQL语句列表,用分号分割</param>
public static void ExecuteSqlTran(string SQLStringList)
{
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection=conn;
OdbcTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
string [] split= SQLStringList.Split(new Char [] { ';'});
foreach (string strsql in split)
{
if (strsql.Trim()!="")
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch(System.Data.Odbc.OdbcException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
方法虽然简单,但确实省了不少时间:)
同时执行两条SQL语句的方法:
public static void ExecuteSqlTran(string SQLString1,string SQLString2)
{
using (SqlConnection conn = new SqlConnection(strDBConnectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection=conn;
SqlTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
cmd.CommandText=SQLString1;
cmd.ExecuteNonQuery();
cmd.CommandText=SQLString2;
cmd.ExecuteNonQuery();
tx.Commit();
}
catch(System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
如果有多条SQL语句需要放在一个事务里实现执行,就用下面这个方法:
/// <summary>
/// 实现多SQL语句执行的数据库事务方法
/// </summary>
/// <param name="SQLStringList">SQL语句列表,用分号分割</param>
public static void ExecuteSqlTran(string SQLStringList)
{
using (OdbcConnection conn = new OdbcConnection(connectionString))
{
conn.Open();
OdbcCommand cmd = new OdbcCommand();
cmd.Connection=conn;
OdbcTransaction tx=conn.BeginTransaction();
cmd.Transaction=tx;
try
{
string [] split= SQLStringList.Split(new Char [] { ';'});
foreach (string strsql in split)
{
if (strsql.Trim()!="")
{
cmd.CommandText=strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch(System.Data.Odbc.OdbcException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
方法虽然简单,但确实省了不少时间:)
相关文章推荐
- 自己写的实现数据库事务的简单方法ExecuteSqlTran()
- 自己写的实现数据库事务的简单方法ExecuteSqlTran()
- 自己写的实现数据库事务的简单方法ExecuteSqlTran()
- 实现数据库事务的简单方法ExecuteSqlTran()
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第五部分 Insert语句)
- 执行多条SQL语句,实现数据库事务。
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第二部分 结果集排序)
- C#实现数据库事务处理的简单示例代码
- 利用反射+自定义特性实现简单ORM(二),“无SQL”的数据库增删改查
- spring有自己的视图可以实现pdf导出,但是获取pdf总页数太麻烦了,大家有简单的方法吗?
- C# 数据库sql中用参数的方法来执行UPDATE命令,实现更新dataTime类型
- 用sql语句实现分离和附加数据库的方法
- 用简单工厂方法设计的数据库查询(JAVA代码实现)
- 用一条SQL语句实现向数据库中插入多条记录的方法
- 用一条SQL语句实现向数据库中插入多条记录的方法
- 简单超市信息管理数据库模型,sql实现~
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第四部分 查询结果集中间n行数据)
- 执行多条SQL语句,实现数据库事务。
- LLBLGen的数据库相对应SQL语句实现方法收藏