事务体会
发布日期:2021-07-17 20:20:27
浏览次数:4
分类:技术文章
本文共 1502 字,大约阅读时间需要 5 分钟。
1.事务在是依附在连接上的.
如果SqlCommand依附的连接上有事务,那么对必须给SqlCommand指定事务.不然出现异常:异常详细信息: System.InvalidOperationException: 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化。代码: string connString = "Data Source=192.168.0.211;Initial Catalog=test1;User ID=dev_user;Password=dev_user"; SqlConnection conn = new SqlConnection(connString); conn.Open();SqlTransaction transaction = conn.BeginTransaction(IsolationLevel.Serializable);
SqlCommand sqlcomm = new SqlCommand();
sqlcomm.Connection = conn; //sqlcomm.Transaction = transaction; sqlcomm.CommandText = "insert into yg(yg_name,b_id) values('b',1)"; sqlcomm.ExecuteNonQuery(); transaction.Rollback(); conn.Close();2.事务的Rollback()操作其实是使用了与sql相反的操作,如insert的Rollback为delete.
意思就是在Rollback之前,sql已真实地去数据库进行了操作.3.事务是引用类型,其它过程对其的操作会影响它.
protected void Button1_Click(object sender, EventArgs e) { string connString = "Data Source=192.168.0.211;Initial Catalog=test1;User ID=dev_user;Password=dev_user"; SqlConnection conn = new SqlConnection(connString); conn.Open();SqlTransaction transaction = conn.BeginTransaction(IsolationLevel.Serializable);
SqlCommand sqlcomm = new SqlCommand();
sqlcomm.Connection = conn; sqlcomm.Transaction = transaction; sqlcomm.CommandText = "insert into yg(yg_name,b_id) values('c',1)"; sqlcomm.ExecuteNonQuery(); //transaction.Rollback(); myrollback(transaction);//事务是引用类型,其它过程对其的操作会影响它. conn.Close(); Label1.Text = "ok"; }void myrollback(SqlTransaction transaction)
{ transaction.Rollback();//insert无效 }作者:ikmb@163.com
转载地址:https://blog.csdn.net/ikmb/article/details/3429527 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年03月30日 01时52分08秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
一分钟学会C#解析XML
2019-04-27
unity AssetBundle的资源管理
2019-04-27
【转】Unity中HideInInspector和SerializeField一起使用
2019-04-27
单例模板类
2019-04-27
Unity与java相互调用
2019-04-27
android截屏代码
2019-04-27
unity NGUI图文混排
2019-04-27
Unity项目优化
2019-04-27
Unity3D Shader 入门
2019-04-27
MSDK手Q邀请透传参数问题:url编解码与base64编解码
2019-04-27
svn提交的一个坑
2019-04-27
eclipse识别不了模拟器解决办法
2019-04-27
unity mesh合并
2019-04-27
谈谈类之间的关联关系与依赖关系
2019-04-27
unity5.x assetbundle打包和加载
2019-04-27
C#用正则表达式去匹配被双引号包起来的中文
2019-04-27
lua table排序
2019-04-27
Unity发布的ios包在iphone上声音是从听筒里出来的问题
2019-04-27
UIScrollView复用节点示例
2019-04-27