SQL中运用事务实现多表更新操作
2011-08-05 14:16
239 查看
using (SqlConnection conn = new SqlConnection(SQLHelper.constr))//SQLHelper.constr为数据库连接字符串
{
conn.Open();//连接数据库
//使用事务处理多SQL语句
using (SqlTransaction trans = conn.BeginTransaction())
{
try
{
var strSql = new StringBuilder();
SqlParameter[] parameters = {
new SqlParameter("@rodNO", SqlDbType.VarChar, 50),
new SqlParameter("@brokenrodNO", SqlDbType.VarChar, 50),
new SqlParameter("@Operator", SqlDbType.VarChar, 50),
new SqlParameter("@machineNO", SqlDbType.VarChar, 50),
new SqlParameter("@starttime", SqlDbType.DateTime),
new SqlParameter("@Remark", SqlDbType.VarChar, 200),
new SqlParameter("@RecordTime", SqlDbType.DateTime),
new SqlParameter("@State", SqlDbType.VarChar, 50)
};
parameters[0].Value = model.newrodNO; //下面几个表中的字段顺序都是一致的,所以才可以公用一个赋值语句
parameters[1].Value = model.rodNO;
parameters[2].Value = model.Operator;
parameters[3].Value = model.machineNO;
parameters[4].Value = model.starttime;
parameters[5].Value = model.Remark;
parameters[6].Value = model.RecordTime;
parameters[7].Value = model.State;
//插入到断棒表
strSql.Append("insert into PRO_Precisionstretch_BreakRod(");
strSql.Append("rodNO,brokenrodNO,Operator,machineNO,starttime,Remark,RecordTime,State)");
strSql.Append(" values (");
strSql.Append("@rodNO,@brokenrodNO,@Operator,@machineNO,@starttime,@Remark,@RecordTime,@State) ");
//更新本延伸开始表
strSql.Append("update PRO_Precisionstretch_Begin set ");
strSql.Append("rodNO=@rodNO ");
strSql.Append("where rodNO like @brokenrodNO + '%' ");
//更新本延伸结束表
strSql.Append("update PRO_Precisionstretch_end set ");
strSql.Append("rodNO=@rodNO ");
strSql.Append("where rodNO like @brokenrodNO + '%' ");
SQLHelper.RunSql(strSql.ToString(), parameters);
}
catch (Exception)
{
trans.Rollback();
}
finally
{
conn.Close();
}
}
}
{
conn.Open();//连接数据库
//使用事务处理多SQL语句
using (SqlTransaction trans = conn.BeginTransaction())
{
try
{
var strSql = new StringBuilder();
SqlParameter[] parameters = {
new SqlParameter("@rodNO", SqlDbType.VarChar, 50),
new SqlParameter("@brokenrodNO", SqlDbType.VarChar, 50),
new SqlParameter("@Operator", SqlDbType.VarChar, 50),
new SqlParameter("@machineNO", SqlDbType.VarChar, 50),
new SqlParameter("@starttime", SqlDbType.DateTime),
new SqlParameter("@Remark", SqlDbType.VarChar, 200),
new SqlParameter("@RecordTime", SqlDbType.DateTime),
new SqlParameter("@State", SqlDbType.VarChar, 50)
};
parameters[0].Value = model.newrodNO; //下面几个表中的字段顺序都是一致的,所以才可以公用一个赋值语句
parameters[1].Value = model.rodNO;
parameters[2].Value = model.Operator;
parameters[3].Value = model.machineNO;
parameters[4].Value = model.starttime;
parameters[5].Value = model.Remark;
parameters[6].Value = model.RecordTime;
parameters[7].Value = model.State;
//插入到断棒表
strSql.Append("insert into PRO_Precisionstretch_BreakRod(");
strSql.Append("rodNO,brokenrodNO,Operator,machineNO,starttime,Remark,RecordTime,State)");
strSql.Append(" values (");
strSql.Append("@rodNO,@brokenrodNO,@Operator,@machineNO,@starttime,@Remark,@RecordTime,@State) ");
//更新本延伸开始表
strSql.Append("update PRO_Precisionstretch_Begin set ");
strSql.Append("rodNO=@rodNO ");
strSql.Append("where rodNO like @brokenrodNO + '%' ");
//更新本延伸结束表
strSql.Append("update PRO_Precisionstretch_end set ");
strSql.Append("rodNO=@rodNO ");
strSql.Append("where rodNO like @brokenrodNO + '%' ");
SQLHelper.RunSql(strSql.ToString(), parameters);
}
catch (Exception)
{
trans.Rollback();
}
finally
{
conn.Close();
}
}
}
相关文章推荐
- SQL中运用事务实现多表更新操作
- C# 执行多条SQL更新语句,实现数据库事务
- 【SQL】JDBC之运用dbutils组件实现对数据库的增删改查等操作
- SQL之更新操作及事务控制
- Struts2+Ibatis+Spring.30(完整例子,含3.0事务配置,OSCache缓存配置,JreeChart配置,log4j日志输出Sql,对一个表实现完整的查询,批量删除,添加,更新)
- sql语句实现数据库操作
- SQL操作access文件出现事务回滚错误
- Qt模块化笔记之sql——事务处理的实现
- ADO.NET Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
- 使用Phoenix通过sql语句更新操作hbase数据
- Android编程心得-在Assets文件夹中放入.sql文件实现创建SQlite表的操作
- Oracle SQL 操作记录 备忘录 持续更新
- SqlDataAdapter.update结合事务(SqlTransaction)批量更新数据
- SQL语言多表查询、分组统计、子查询、数据表的更新操作、事务处理
- 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]
- 使用事务操作SQLite数据库和一些常用的SQL语句
- java线程池的使用,实现大量数据的更新操作
- vb sql server创建数据库实现增、删、改、查等基本操作
- Oracle中运用PL/SQL操作COM工具-1
- 更新一些堆栈的操作实现