在事务中执行sql语句
2015-09-29 21:53
453 查看
public static void ExecuteSqlWithGoUseTran(String sql)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
//注: 此处以 换行_后面带0到多个空格_再后面是go 来分割字符串
String[] sqlArr = Regex.Split(sql.Trim(), "\r\n\\s*go", RegexOptions.IgnoreCase);
foreach (string strsql in sqlArr)
{
if (strsql.Trim().Length > 1 && strsql.Trim() != "\r\n")
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
finally
{
conn.Close();
}
}
}
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
//注: 此处以 换行_后面带0到多个空格_再后面是go 来分割字符串
String[] sqlArr = Regex.Split(sql.Trim(), "\r\n\\s*go", RegexOptions.IgnoreCase);
foreach (string strsql in sqlArr)
{
if (strsql.Trim().Length > 1 && strsql.Trim() != "\r\n")
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
finally
{
conn.Close();
}
}
}
相关文章推荐
- sqLite的打开、关闭、增删查改
- Nosql数据库——redis(四)数据类型
- 拷贝数据库到沙盒
- 【RMAN】数据库备份之冷备份
- 对过滤方法的整理
- mysql正则选取不包含中文的列
- sql 2008读取excel2013语句
- Please set ORACLE_UNQNAME to database unique name.的解决方案
- MySQL权限管理
- Ubuntu 安装mysql和简单操作
- 2015年9月29日 sql 触发器
- MYSQL 主从服务器配置工作原理
- Index和Index Hint的区别
- mysql 清理分区表
- 关于mysql语句的一道笔试题
- 数据库的连接代码
- 连接数据库
- oracle分区表和分区索引概述
- ORACLE索引介绍和使用
- IOS 之使用FMDB进行SQLite数据库操作——表的创建与修改,以及数据的增删改查和多线程操作数据库