三层结构:逻辑层

逻辑层:

Imports System.Data.SqlClient
Imports WorkVision.DJ0211E

Public Class LogicTransact
    Private ObjDataBaseOperate As DataBaseOperate

    Public Sub New()
        '构造函数
        MyBase.New()
        ObjDataBaseOperate = New DataBaseOperate
    End Sub

    Public Function Read_DJ31() As DataView
        '指定要读的表名
        Dim StrTableName As String
        StrTableName = "DJ31"
        Return ObjDataBaseOperate.Read(StrTableName, "1", "1")
    End Function

    Public Function IU_DateBase(ByVal Ds As DataSet, ByVal Op As String) As String
        '将DataSet中的记录插入到相应数据库,或利用DataSet更新相应数据库数据
        '事务处理
        Dim DbConn As SqlConnection
        DbConn = ObjDataBaseOperate.GetConnection '从实体层获得数据库连接

        Dim Tx As SqlTransaction
        Dim i, j As Integer
        Dim StrWrong As String = ""

        Try
            DbConn.Open()
            Tx = DbConn.BeginTransaction

            For i = 0 To Ds.Tables.Count() - 1 '调用实体层的Insert函数把Ds中所有Table的所有行的数据依次插入数据库
                For j = 0 To Ds.Tables(i).Rows.Count() - 1
                    If Op = "Add" Then
                        ObjDataBaseOperate.Insert(DbConn, Tx, Ds.Tables(i).Rows(j))
                    ElseIf Op = "Edit" Then
                        ObjDataBaseOperate.Update(DbConn, Tx, Ds.Tables(i).Rows(j))
                    End If
                Next
            Next

            Tx.Commit()

        Catch e As Exception
            Tx.Rollback()
            StrWrong = e.ToString
            Beep()
        Finally
            DbConn.Close()
        End Try

        Return StrWrong
    End Function

    Public Function Delete_DJ32DJ33(ByVal StrID As String, ByVal StrFileID As String) As String
        Dim DbConn As SqlConnection = ObjDataBaseOperate.GetConnection
        Dim Tx As SqlTransaction
        Dim StrTableName, StrField, StrParameter, StrField2, StrParameter2 As String
        Dim StrWrong As String

        DbConn.Open()
        Try
            Tx = DbConn.BeginTransaction
            StrTableName = "DJ32"
            StrField = "DJ32_000"
            StrParameter = StrID
            StrField2 = "DJ32_001"
            StrParameter2 = StrFileID
            ObjDataBaseOperate.Delete(DbConn, Tx, StrTableName, StrField, StrParameter, StrField2, StrParameter2)

            StrTableName = "DJ33"
            StrField = "DJ33_000"
            StrParameter = StrID
            StrField2 = "DJ33_001"
            StrParameter2 = StrFileID
            ObjDataBaseOperate.Delete(DbConn, Tx, StrTableName, StrField, StrParameter, StrField2, StrParameter2)

            ObjDataBaseOperate.Update_DJ32DJ33(DbConn, Tx, StrID, StrFileID)

            Tx.Commit()
        Catch ex As Exception
            Tx.Rollback()
            Beep()
            StrWrong = ex.ToString
        Finally
            DbConn.Close()
        End Try

        Return StrWrong
    End Function

    Public Function Insert_Row(ByVal Dr As DataRow) As String
        ObjDataBaseOperate.Insert(Dr)
    End Function

End Class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值