有个功能 需要以下操作
第一 向A表添加一个信息 当成功后执行第二
第二 向B表添加一个信息 此处 就容易出现问题
问题是 当向B表添加失败时 就同时取消第一步操作,没有试用存储过程。需要在.NET 后台代码中处理 请教该怎么用事务操作?
第一 向A表添加一个信息 当成功后执行第二
第二 向B表添加一个信息 此处 就容易出现问题
问题是 当向B表添加失败时 就同时取消第一步操作,没有试用存储过程。需要在.NET 后台代码中处理 请教该怎么用事务操作?
解决方案 »
- 关于Excel导入并存储,求急救!!!!!!!!!!!!!!!!!!!!
- 最近服务器或者程序可能哪里出了漏洞,数据表里老是被插入<script src=http://%61%31%38%38%2E%77%73/1.js></script>
- 在asp.net中怎么做出标签的效果?
- visual studio 2008平台和2005有何区别?
- 怎么用程序触发DataGrid控件的分页事件?
- 请大家帮忙解释一下这段代码。谢谢
- 关于DataGrid弹出窗口的问题
- 编写jquery 插件
- 请问视频网站的核心技术和原理是什么?
- 关于columns的问题
- 关于c#处得Excel的问题
- asp.net remoting 例子
con.Open();//打开连接
SqlTransaction sqltra = con.BeginTransaction();//开始事务
SqlCommand cmd = new SqlCommand();//实例化
cmd.Connection = con;//获取数据连接
cmd.Transaction = sqltra;//,在执行SQL时,
try
{
string sql = "";//向A表添加一个信息的SQL
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
string sql = "";
cmd.CommandText = sql;//向B表添加一个信息的SQL
cmd.ExecuteNonQuery(); sqltra.Commit();
}catch(Exception ex)
{
sqltra.Rollback();
}
这样既可。
{
//方法一
//方法二
scope.Commit() ;
}
--也可以写个存储过程判断--
create proc ceshi
(
@par1 int,@par2 varchar(50),@output int
)
declare @count int
insert into table1(par) values(@par2)
set @count = @@rowcount
if(@count=1)
begin
insert into table2(par) values(@par2)
set @count=1
end
else
set @count=-1
--不过这个还是事务比较灵活--