事务一次处理多条SQL语句
2011-12-19 22:12
447 查看
下面就将为您介绍如何使用事务一次处理多条SQL语句的方法,包括SQL中事务的写法以及调用的方法供您参考,希望对您学习SQL语句的执行能够有所帮助 。
执行一个操作时,要同时修改多张表里的数据,并且每条数据都必须操作成功,才算执行成功,为了防止有些数据操作失败,有些成功,而造成的数据错乱,我们要使用事务 。
事务就是:只有所有操作都成功则成功,只要有一条数据操作失败,则回滚 。
后台写事务:
///
/// 执行多条SQL语句,实现数据库事务 。
/// access数据库
///多条SQL语句
public static void ExecuteSqlTran(List SQLStringList)
{
using (OleDbConnection conn = new OleDbConnection(SqlHelper.ConString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
OleDbTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList
.ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
///
/// 执行多条SQL语句,实现数据库事务 。
/// sql2000数据库
///多条SQL语句
public static void ExecuteSqlTran(List SQLStringList)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList
.ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
前台调用:
try
{
//1.查出会员余额
decimal usermoney = SqlDal.EntityUserinfo.GetModel(int.Parse(cookieUserID)).Money;
//2.修改余额
decimal Zmoney = usermoney + moAD.Commission;
//写SQL语句
List SQLStringList = new List();
string clickSql = "insert into [user] (name,age)values(" + 小名 + ",“+4岁+”)";
string userSql = "update [class] set [name]=" + 幼儿园 + " where id=" + 2 + " ";
SQLStringList.Add(clickSql);
SQLStringList.Add(userSql);
SqlDal.SqlHelper.ExecuteSqlTran(SQLStringList);
//数据库操作成功
//提示
CommonClass.Xmls xmls1 = new CommonClass.Xmls();
string path1 = CommonClass.Unit.GetMapPath(@"/Admin/Configs/SysSettingInfo.config");
string ClickTishi = xmls1.GetXmlNode(path1, "SysSettingInfo/ClickTishi");
//替换字符
ClickTishi = ClickTishi.Replace("[$]", moAD.Commission.ToString("0.00"));
context.Response.Write(ClickTishi); //输出
}
catch (Exception ex)
{
//Response.Write(ex.Message);
context.Response.Write("操作失败!" + ex.Message); //输出
}
下面将为您介绍如何执行多条SQL语句,实现数据库事务的方法,供您参考,如果您对SQL语句和事务感兴趣的话,不妨一看,详细对您学习SQL大有帮助 。
///
/// 执行多条SQL语句,实现数据库事务 。
///
///多条SQL语句
public static void ExecuteSqlTran(IList SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList
.ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
protected void btnOk_Click(object sender, EventArgs e)
{
string upsql = "update 表 set=123 where id=";//省略其他SET
IList l = new List();
for (int i = 0; i CheckBox c= (CheckBox)this.DataList1.Items[i].FindControl("CheckBox1");
TextBox tb = (TextBox)this.DataList1.Items[i].FindControl("TextBox1");
//下面几个TextBox省略
if(c.Checked)
{
l.Add("update 表 set="+tb.Text+" where id="+ this.DataList1.DataKeys[i].ToString());
}
}
SqlServerHelper.ExecuteSqlTran(l);
}
执行一个操作时,要同时修改多张表里的数据,并且每条数据都必须操作成功,才算执行成功,为了防止有些数据操作失败,有些成功,而造成的数据错乱,我们要使用事务 。
事务就是:只有所有操作都成功则成功,只要有一条数据操作失败,则回滚 。
后台写事务:
///
/// 执行多条SQL语句,实现数据库事务 。
/// access数据库
///多条SQL语句
public static void ExecuteSqlTran(List SQLStringList)
{
using (OleDbConnection conn = new OleDbConnection(SqlHelper.ConString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
OleDbTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList
.ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.OleDb.OleDbException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
///
/// 执行多条SQL语句,实现数据库事务 。
/// sql2000数据库
///多条SQL语句
public static void ExecuteSqlTran(List SQLStringList)
{
using (SqlConnection conn = new SqlConnection(SqlHelper.ConString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList
.ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
前台调用:
try
{
//1.查出会员余额
decimal usermoney = SqlDal.EntityUserinfo.GetModel(int.Parse(cookieUserID)).Money;
//2.修改余额
decimal Zmoney = usermoney + moAD.Commission;
//写SQL语句
List SQLStringList = new List();
string clickSql = "insert into [user] (name,age)values(" + 小名 + ",“+4岁+”)";
string userSql = "update [class] set [name]=" + 幼儿园 + " where id=" + 2 + " ";
SQLStringList.Add(clickSql);
SQLStringList.Add(userSql);
SqlDal.SqlHelper.ExecuteSqlTran(SQLStringList);
//数据库操作成功
//提示
CommonClass.Xmls xmls1 = new CommonClass.Xmls();
string path1 = CommonClass.Unit.GetMapPath(@"/Admin/Configs/SysSettingInfo.config");
string ClickTishi = xmls1.GetXmlNode(path1, "SysSettingInfo/ClickTishi");
//替换字符
ClickTishi = ClickTishi.Replace("[$]", moAD.Commission.ToString("0.00"));
context.Response.Write(ClickTishi); //输出
}
catch (Exception ex)
{
//Response.Write(ex.Message);
context.Response.Write("操作失败!" + ex.Message); //输出
}
下面将为您介绍如何执行多条SQL语句,实现数据库事务的方法,供您参考,如果您对SQL语句和事务感兴趣的话,不妨一看,详细对您学习SQL大有帮助 。
///
/// 执行多条SQL语句,实现数据库事务 。
///
///多条SQL语句
public static void ExecuteSqlTran(IList SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
SqlTransaction tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList
.ToString();
if (strsql.Trim().Length > 1)
{
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tx.Commit();
}
catch (System.Data.SqlClient.SqlException E)
{
tx.Rollback();
throw new Exception(E.Message);
}
}
}
protected void btnOk_Click(object sender, EventArgs e)
{
string upsql = "update 表 set=123 where id=";//省略其他SET
IList l = new List();
for (int i = 0; i CheckBox c= (CheckBox)this.DataList1.Items[i].FindControl("CheckBox1");
TextBox tb = (TextBox)this.DataList1.Items[i].FindControl("TextBox1");
//下面几个TextBox省略
if(c.Checked)
{
l.Add("update 表 set="+tb.Text+" where id="+ this.DataList1.DataKeys[i].ToString());
}
}
SqlServerHelper.ExecuteSqlTran(l);
}
相关文章推荐
- 使用事务一次处理多条SQL语句
- 用事务一次处理多条SQL语句
- 用事务一次处理多条SQL语句
- 教您用事务一次处理多条SQL语句
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚)
- (C#)执行多条SQL语句,事务处理
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚) .
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚)
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚) .
- Java一次执行多条SQL语句
- DBUtil.Execute(sql); 一次执行多条sql语句
- 一个jdbc的例子(包含sql语句的批处理,事务处理,数据绑定prepare)
- T-SQL 存储过程中使用事务并回滚出错的SQL语句(C#事务处理)
- 一次插入多条记录的SQL语句介绍
- C#一次连接数据库执行多条sql语句(三种方法)
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- android Sqlite数据库事务处理*.sql 语句集文件
- MyBatis一次执行多条SQL语句
- PHP一次执行多条sql语句
- 在EF4.1的DBContext中实现事务处理(BeginTransaction)和直接执行SQL语句的示例