关闭数据库之前是否需要先关闭事务?

美福种田伯 2014-01-26 02:29:57
使用 ADO.NET 访问数据库,打开后,启用事务,对数据进行访问,最后关闭数据库。

请问在最后的步骤,关闭数据库,是否需要先关闭事务?.NET会自动清理事务对象所占资源,但是手动关闭和自动关闭有没有效率上的差异?

请高手作答,谢谢。
...全文
612 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
美福种田伯 2014-04-12
  • 打赏
  • 举报
回复
引用 5 楼 qiujialongjjj 的回复:
有些时候,要是不加的话,短时间内很频繁的操作数据库,可能会出问题
这个倒是不会,你指的是大量并发操作吧? 垃圾回收器会自动回收事务完成后所占资源。
美福种田伯 2014-04-12
  • 打赏
  • 举报
回复
引用 4 楼 huang369509940 的回复:
一般都不加dispose吧。。。

            MySqlTransaction st = con.BeginTransaction();//启用事务实现
            MySqlCommand com = con.CreateCommand();
            com.Transaction = st;
            try
            {
                com.CommandText = cmd;
                com.ExecuteNonQuery();
                st.Commit();
                return true;
            }
            catch
            {
                st.Rollback();
                return false;
            }
加的话。。finally写喽 不过 很少见人写过 效率问题 也想知道~
如果你的事务作用域只局限于当前方法内,则可以不掉用 Dispose 方法,由垃圾处理器自行回收。
美福种田伯 2014-04-12
  • 打赏
  • 举报
回复
统一回复: 根据需要添加释放事务的代码,在 .Net 4.5 源码中 SqlTransaction 的 Commit 和 Rollback 并没有执行任何释放操作,但是在其异常处理代码中会中断连接。不过它的 Dispose 代码也只是强制调用了垃圾处理器进行自身的垃圾回收。 具体代码参考: http://referencesource.microsoft.com/#System.Data/data/System/Data/SqlClient/sqlinternaltransaction.cs
xloveme 2014-01-27
  • 打赏
  • 举报
回复
关闭数据库之前,一定要先保存事务,如果不想取消的话。
黄大仙儿 2014-01-27
  • 打赏
  • 举报
回复
一般都不加dispose吧。。。

            MySqlTransaction st = con.BeginTransaction();//启用事务实现
            MySqlCommand com = con.CreateCommand();
            com.Transaction = st;
            try
            {
                com.CommandText = cmd;
                com.ExecuteNonQuery();
                st.Commit();
                return true;
            }
            catch
            {
                st.Rollback();
                return false;
            }
加的话。。finally写喽 不过 很少见人写过 效率问题 也想知道~
bdmh 2014-01-27
  • 打赏
  • 举报
回复
你总要提交或者回滚事务吧,否则你的事务内的操作都将无效
申江渔夫 2014-01-27
  • 打赏
  • 举报
回复
事务提交或回滾即是结束事务了。
风一样的大叔 2014-01-27
  • 打赏
  • 举报
回复
有些时候,要是不加的话,短时间内很频繁的操作数据库,可能会出问题
Regan-lin 2014-01-26
  • 打赏
  • 举报
回复
它最后关闭了会回收资源的,一样的吧

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧