带有事务集合整理--更新中
来源:互联网 发布:双11淘宝红包口令 编辑:程序博客网 时间:2024/06/05 15:01
'**********************************************************************
'* 函数名称: UpdateDs
'* 函数描述: 更新一个DATASET,可以更新多个表,如果有一个出错,要全部回滚事务.
'* 参数列表: arrSql:输入DS 表格的查询字符串数组,从下标为0处开始执行SQL语句。
'* Ds:传入要修改的DS
'* arrTableName:DS中的表名,
'* 返 回 值: x=更新后的DS
'* 作 者: Itc-Lsg
'* 创建日期: 2007-12-22
'**********************************************************************
Public Function UpdateDs(ByVal arrSql() As String, ByRef Ds As DataSet, ByVal arrTableName() As String) As DataSet
Dim sqlcon As New SqlClient.SqlConnection(Me.ConnectionString)
Dim s As SqlClient.SqlCommandBuilder
Dim da As SqlClient.SqlDataAdapter
Dim sTableName As String = ""
Dim strSql As String = ""
Dim nArrLen As Integer = 0
Dim i As Integer = 0
Dim tbChange As New DataTable
Dim Trans As Data.SqlClient.SqlTransaction
nArrLen = arrSql.Length
If Not sqlcon.State = ConnectionState.Open Then
sqlcon.Open()
End If
Try
Trans = sqlcon.BeginTransaction
For i = 0 To nArrLen - 1
strSql = arrSql(i).Trim()
sTableName = arrTableName(i)
da = New SqlClient.SqlDataAdapter(strSql, sqlcon)
s = New SqlClient.SqlCommandBuilder(da)
If sTableName.Trim() = "" Then
tbChange = CType(Ds.Tables(0).GetChanges, DataTable)
Else
tbChange = CType(Ds.Tables(sTableName).GetChanges, DataTable)
End If
da.SelectCommand.Transaction = Trans
If Not tbChange Is Nothing Then
If sTableName.Trim() = "" Then
da.Update(Ds)
Ds.Tables(sTableName).Clear()
da.Fill(Ds)
Else
da.Update(Ds, sTableName)
Ds.Tables(sTableName).Clear()
da.Fill(Ds, sTableName)
End If
Ds.Merge(tbChange)
End If
Next
Ds.AcceptChanges()
Trans.Commit()
Return Ds
Catch ex As Exception
Throw ThrowErr(ex)
Trans.Rollback()
Finally
sqlcon.Close()
sqlcon.Dispose()
End Try
End Function
下面是另一种事务提交,没有亲自试验过.希望好用:
http://topic.csdn.net/u/20080116/16/94918fac-9ecc-4e9e-a097-46a3dfef371a.html
'**********************************************************************
'* 函数名称: GetCustomer
'* 函数描述: 得到客户信息.不写参数得到系统默认客户.
'* 参数列表: sCustomerNum,客户ID,默认为"",得到系统默认客户
'*
'* 返 回 值: 公用变量oCustomer值
'* 作 者: Itc-Lsg
'* 创建日期: 2008-01-18
'**********************************************************************
''' <summary>
''' 执行无返回的查询执行一个数组,里面含有事务:Del,Update or Insert
''' </summary>
''' <param name="sqlstr"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecSqlNonQuery(ByVal sqlstr As Array) As Integer
Dim mySqlCommd As New SqlClient.SqlCommand
Dim mySqlcon As New SqlClient.SqlConnection
Dim Trans As SqlClient.SqlTransaction
Try
mySqlcon.ConnectionString = Me.ConnectionString
mySqlcon.Open()
mySqlCommd.CommandType = CommandType.Text
mySqlCommd.Connection = mySqlcon
Trans = mySqlcon.BeginTransaction()
mySqlCommd.Transaction = Trans
Dim i As Integer = 0
For i = 0 To sqlstr.Length - 1
mySqlCommd.CommandText = sqlstr(i)
mySqlCommd.ExecuteNonQuery()
Next i
Trans.Commit()
Catch ex As Exception
Throw ThrowErr(ex)
Trans.Rollback()
Finally
mySqlcon.Close()
mySqlcon.Dispose()
mySqlcon = Nothing
mySqlCommd.Dispose()
mySqlCommd = Nothing
Trans = Nothing
End Try
End Function
- 带有事务集合整理--更新中
- Android版本相机适配问题集合(不断整理更新中)
- JS问题整理 更新中。。。
- javascript 属性整理 更新中
- 技术文档整理-更新中
- Shell整理(持续更新中)
- Python数据处理(整理更新中...)
- vb中提交事务(整理)
- vb中提交事务(整理)
- JavaScript中table对象集合整理
- Java集合(Unfinished-整理排版中)
- 笑话集合(持续更新中)
- POI 导出excel Exception集合, 更新中...
- SharePoint 命令集合(持续更新中...)
- chromium相关问题集合--持续更新中
- Opencv 学习资料集合(更新中。。。)
- Orcale 常用命令集合 (更新中)
- entity中对集合List进行更新
- 一道C#面试题
- Js事件触发列表与解说
- qt配置vs2005的方法
- 介绍linux上两种rootkits检测工具: Rootkit Hunter和Chkrootkit
- Log4J 在系统运行时更改log4j的配置
- 带有事务集合整理--更新中
- HWQY油料价格计算存储过程(方便自己用发网上)
- 根据日志消息的内容进行日志输出
- c语言标准输入结束符
- C#基础学习日志===>数组<===
- 实现ajax时一些跨浏览器的js方法
- jsp标签jsp:setProperty用法
- 一些序列号
- 用8086汇编写的多线程任务的程序!