您的位置:程序门 -> .net技术 -> c#



高手指教~~~在提交的sql语句前面加了begin tran事务 结尾没有用commit tran 为什么也能出来结果集?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


高手指教~~~在提交的sql语句前面加了begin tran事务 结尾没有用commit tran 为什么也能出来结果集?
发表于:2008-01-22 17:09:37 楼主
在提交的sql语句前面加了begin   tran事务   结尾没有用commit   tran   为什么也能出来结果集?

string   connectionstring   =   system.configuration.configurationsettings.appsettings["connectionsqlserver"];
string   sql   =   "begin   tran   select   top   10   *   from   table1     order   by   id   asc";

//   创建sqlconnection对象
//   创建dataadapter对象并初始化
sqlconnection   thisconnection   =   new   sqlconnection(connectionstring);
sqldataadapter   adapter   =   new   sqldataadapter(sql,   thisconnection);

//   创建dataset对象
dataset   data   =   new   dataset();

//   填充数据到dataset
adapter.fill(data);

//   数据绑定
mydatagrid.datasource   =   data;
mydatagrid.databind();
发表于:2008-01-22 17:13:021楼 得分:0
顶上去
发表于:2008-01-22 17:14:592楼 得分:0
是的,在一个事务中,所有的操作都会即时的反映到查询中,只有rollback之后才还原会原本的状态,commit只不过是把操作完成后的状态保存到数据库而已.
就像你用word编辑,虽然没有保存,但是你仍然可以看见你编辑的状态,但是如果没有commit,别人打开这个文件仍然只能看见原有的内容.而如果你保存了,那么别人就可以看见你编辑过的内容了.
发表于:2008-01-22 17:54:543楼 得分:0
恩有道理,还有个疑问:执行类似这种begin       tran       select       top       10       *       from       table1           order       by       id       asc语句对数据库来说这个链接的   @@trancount   会+1   那么在我把这一页面关闭的时候或者这个数据连接disposed的时候   @@trancount   是不是就被回收了,也就是说这样看似不完整的sql对数据库的稳定是没有影响的???


快速检索

最新资讯
热门点击