본문 바로가기

공부/컴퓨터

[VB.Net] mdb에서 ADO.Net 과 트랜잭션 사용하기

반응형
http://www.devpia.com/Forum/BoardView.aspx?no=9569&page=1&Tpage=1&forumname=vbnet_qa&stype=&ctType=&answer=&KeyR=titlecontent&KeyC=


제 경우는 access mdb를 가지고 한 예제입니다.
저도 vb.net을 잘 몰라 직접  sql문장을 가지고 구현 했습니다.

아래는 dataset을 사용하지 않고 직접 db를 핸들링하는 경우입니다.

Public Sub MeasurementValueTableCreate(ByVal TableName As String, ByVal DBConnection As OleDbConnection)

        Dim strSQL As String
        Dim oleTran As OleDbTransaction
        Dim str As String
        Dim i As Integer = 0

        Dim OleDbTableCreateCommand1 = New System.Data.OleDb.OleDbCommand

        str = TableName
        OleDbTableCreateCommand1.Connection = DBConnection

        Dim strC1, strC2, strC3 As String

        strC1 = "ID"
        strC2 = "계측일시"

                'cnt_SensorUsed 는 계측시 센서 갯수죠! 즉, id와 계측일시외 추가되는 컬럼의 숫자입니다.
       ' 총 컬럼수 = cnt_SensorUsed +2

        strSQL = "Create table [" + str + "] (" + _
                  strC1 + " integer Constraint PrimaryKey Primary Key, " + _
                  strC2 + " date"
             For i = 0 To (cnt_SensorUsed - 1) Step 1
            strSQL = strSQL + ", " + Unit_SensorItem(i) + " single "
        Next

        strSQL = strSQL + " )"

        OleDbTableCreateCommand1.CommandText = strSQL
        DBConnection.Open()

        Try
            oleTran = OleDbConnection1.BeginTransaction
            OleDbTableCreateCommand1.Transaction = oleTran
            OleDbTableCreateCommand1.ExecuteNonQuery()
            oleTran.Commit()

        Catch err As OleDbException
            oleTran.Rollback()
            MsgBox(err.Message, MsgBoxStyle.Critical, "오류")
        End Try

        DBConnection.Close()

    End Sub

도움이 되셨기를 바랍니다.
반응형