您的位置:首页 > 数据库

C#中事务批量操作sql语句

2017-06-27 09:39 176 查看
首先至少要引用的文件
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
(1)在需要执行sql业务中写如下代码:
ArrayList sqlList = new ArrayList();
string sqlStr1 = @"insert into....";
string sqlStr2 = @"update....";
sqlList.Add(sqlStr1 );
sqlList.Add(sqlStr2 );
if (sqlList.Count > 0)
{
var result= BatchExecuteNonQuery(sqlList); //事务操作
if (result)
{
//操作成功的代码
}
else {
//操作失败的代码
}

}

(2)执行BatchExecuteNonQuery函数的代码
public bool BatchExecuteNonQuery(ArrayList ALSql)
{
string strconntstring = WebConfigurationManager.ConnectionStrings["字符串"].ToString();
SqlConnection Conn = new SqlConnection(strconntstring);
if (Conn.State != ConnectionState.Open)
{
try
{
Conn.Open();
}
catch
{
throw new Exception("数据库无法连接");
}
}
bool state= false;
SqlTransaction transaction = null;
if (Conn.State != ConnectionState.Open)
{
try
{
Conn.Open();
}
catch
{
throw new Exception("数据库无法连接");
}
}
try
{
SqlCommand cmd = new SqlCommand();

transaction = Conn.BeginTransaction();
cmd.Transaction = transaction;
cmd.Connection = Conn;
cmd.CommandType = CommandType.Text;

for (int i = 0; i < ALSql.Count; i++)
{
cmd.CommandText = ALSql[i].ToString();
cmd.ExecuteNonQuery();
}
transaction.Commit();
state= true;
}
catch (Exception ex)
{
state= false;
transaction.Rollback();
}
finally
{
Conn.Close();
}
return state;
}










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