ADO执行事务
在工作中遇到,需要批量提交的。在sql2008以后有表变量定义,可以实现。但个人比较习惯用C#,就有下面代码,直接上代码。。。
using (SqlConnection conn = new SqlConnection(Conn.Connection))
{
conn.Open();
SqlCommand comm = new SqlCommand() { Connection = conn };
SqlTransaction tran = conn.BeginTransaction();
comm.Transaction = tran;
try
{
comm.CommandType = CommandType.StoredProcedure;
comm.CommandText = "tb_role_INSERT";
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter {ParameterName="@code",Value=array[0].ToString(),SqlDbType=SqlDbType.NVarChar, Size = 100 },
new SqlParameter {ParameterName="@name",Value=array[1].ToString(),SqlDbType=SqlDbType.NVarChar, Size = 500 },
new SqlParameter {ParameterName="@remark",Value=array[2].ToString(),SqlDbType=SqlDbType.NText},
new SqlParameter {ParameterName="@create_time",Value=DateTime.Now,SqlDbType=SqlDbType.DateTime},
new SqlParameter {ParameterName="@create_user_id",Value=Lib.ReadCookie("UserID"),SqlDbType=SqlDbType.Int},
new SqlParameter {ParameterName="@is_active",Value=1,SqlDbType=SqlDbType.Int},
new SqlParameter {ParameterName="@manufacturer_id",Value=Lib.ReadCookie("ManuID"),SqlDbType=SqlDbType.Int},
new SqlParameter {ParameterName="@custid",Value=Lib.ReadCookie("CustID"),SqlDbType=SqlDbType.Int},
new SqlParameter{ParameterName="@tb_roleID",Direction=ParameterDirection.Output,SqlDbType=SqlDbType.Int},
};
comm.Parameters.AddRange(parms);
comm.ExecuteNonQuery();
int id = Convert.ToInt32(comm.Parameters["@tb_roleID"].Value);
ArrayList sqlList = GetRolePermissionList(id, array[7].ToString());
for (int i = 0; i < sqlList.Count; i++)
{
string str2 = sqlList[i].ToString();
if (str2.Trim().Length > 1)
{
comm.CommandType = CommandType.Text;
comm.CommandText = str2;
comm.ExecuteNonQuery();
}
}
tran.Commit();
}
catch (SqlException ex)
{
tran.Rollback();
messge = ex.Message;
}
}
ADO执行事务的更多相关文章
- ADO.NET 事务控制
在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务.若要执行事务,请执行下列操作: 1.调用Connection 对象的BeginTransaction 方法 ...
- SqlServer批量刷数据执行事务回滚语句备份
企业进行对数据库执行刷数据工作,一段很长的语句希望同时成功或者失败时用到. 1.建立测试环境 /**************************************************** ...
- ADO.NET事务
在发布System.Transaction命名空间之前,可以直接用ADO.NET创建事务,也可以通过组件.特性和COM+运行库(位于System.EnterpriseServices命名空间中)进行事 ...
- 详解MySQL执行事务的语法和流程
摘要:MySQL 提供了多种存储引擎来支持事务. MySQL 提供了多种存储引擎来支持事务.支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 ...
- Spring @Transaction 注解是如何执行事务的?
前言 相信小伙伴一定用过 @Transaction 注解,那 @Transaction 背后的秘密又知道多少呢? Spring 是如何开启事务的?又是如何进行提交事务和关闭事务的呢? 画图猜测 在开始 ...
- 【记录一个问题】redis中执行事务出现错误“EXECABORT Transaction discarded because of previous errors”
执行事务的大致代码如下: redisClient := GetRedisClient() pipe := redisClient.TxPipeline() err := pipe.ZAdd(k, ar ...
- ADO.NET笔记——执行事务
相关知识: 处于同一事务(Transaction)内的一组操作,要么都成功执行,最后完全提交:但如果只要有任何一个操作失败或者出问题,所有值钱执行的操作也都取消并恢复到初始状态(即回滚) SqlTra ...
- SQL Server 2008 R2——VC++ ADO 操作 事务
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
- ADO.NET事务封装
在数据库工具类编写的过程中,对事务的处理操作想避免各个原子操作的事务对象赋值重复操作,想对外暴露的方法为如下形式 public bool ExecuteTransition(Action Transi ...
随机推荐
- HTML5 学习指导
HTML 语义 HTML5为我们提供了很多旨在精确描述内容的语义元素.确保你可以从它丰富的词汇中获益. <!-- bad --> <div id="main"&g ...
- Hibernate和JPA
ORM(Object/Relational Mapping : 对象关系映射)就是利用描述对象和数据库之间映射的元数据,自动(且透明)的将java应用程序中的对象持久化到关系数据库的表中.HIbern ...
- Ubuntu 添加用户到sudoers
ubuntu上的用户有时候需要用到管理员权限,可以通过修改 /etc/sudoers 文件内容添加用户权限. 操作方式 1. 首先以root进入系统打开文件 sudo vim /etc/sudoers ...
- linux安装thrift
安装配置Thrift Thrift的编译器使用C++编写的,在安装编译器之前,首先应该保证操作系统基本环境支持C++的编译,安装相关依赖的软件包,如下所示 sudo yum install autom ...
- CF 671D Roads in Yusland
弄完之后点进去一看,竟然是div1的D题……最近真是天天被题虐哭 推荐这一篇博客 https://www.cnblogs.com/Sakits/p/8085598.html 感觉讲清楚了,也是基本照着 ...
- cakephp的优点
1.接口传参非常简单,直接域名/控制器名/方法名/param1/param2
- Git 之 github分享代码
作为一个技术人员还是脱离不了屌丝的本质,所以每天都是逛逛github,看看别人有什么好的项目,自己可以给他挑挑bug也可以提供自己的水平,但是别人不那怎么才能给别人贡献代码呢?那就是fork了.... ...
- android 设置颜色的三种方法
1.利于系统自带的颜色类 如TextView1.setTextColor(Android.graphics.Color.RED); 2.数字颜色表示法 TextView1.setTextColor(0 ...
- RGB转灰度的几种算法
这里我用的摄像头是OV2640,这款摄像头的像素是200万.通过对摄像头拍摄图像的进行图像的转化,先把图像的格式转化为RGB565,然后在进行灰度的转化,最后进行二值化处理,设定阈值,进行二值化的处理 ...
- java代理模式实例讲解
下面这个是设计模式课上的例子: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import ...