settingsログイン
メニュー

トランザクション処理について

閲覧 54
トランザクション処理によってDBへ接続を行おうとしたところ
接続エラーがでてしまったようです。
トランザクションの前のDBに接続を行うところまでは行えたようなのですが
そこから先の処理が実行されません
解決方法をご教授願います。

開発環境:visualBasic 2013

コード:

  '接続文字列を生成する()
        Dim stConnectionString As String = String.Empty
        stConnectionString &= "Data Source = 10.8.154.90;"
        stConnectionString &= "Initial Catalog = 社員マスタ;"
        stConnectionString &= "user id = sa;"
        stConnectionString &= "password = Passw0rd;"
        stConnectionString &= "Integrated Security=false"
        Dim servername As String
        Dim dbname As String
        ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定)
        Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString)

        ' データベース接続を開く
        cSqlConnection.Open()


        'トランザクションの開始
        Dim tran As SqlTransaction = Nothing
        tran = con.BeginTransaction()





        Try

            'SelectComman設定
            da.SelectCommand = New SqlCommand
            da.SelectCommand.Connection = con
            da.SelectCommand.CommandText = "SELECT * FROM control"
            'トランザクションの設定
            da.SelectCommand.Transaction = tran

            'InsertCommand設定
            da.InsertCommand = New SqlCommand
            da.InsertCommand.Connection = con
            da.InsertCommand.CommandText = "INSERT INTO control([管理区分], [キー1], [文字列1],[備考],[更新者],[更新日時]) VALUES (" & UltraGrid1.DataSource & ")"


            ''パラメータ設定
            'da.InsertCommand.Parameters.Add("管理区分", SqlDbType.NVarChar, 4, "ITEM_CD")
            'da.InsertCommand.Parameters.Add("@UNIT_SALES", SqlDbType.Decimal, 8, "UNIT_SALES")
            'da.InsertCommand.Parameters.Add("@SALES_AMOUNT", SqlDbType.Decimal, 8, "SALES_AMOUNT")
            'da.InsertCommand.Parameters.Add("@SALES_AMOUNT", SqlDbType.Decimal, 8, "SALES_AMOUNT")
            'da.InsertCommand.Parameters.Add("@SALES_AMOUNT", SqlDbType.Decimal, 8, "SALES_AMOUNT")
            'da.InsertCommand.Parameters.Add("@SALES_AMOUNT", SqlDbType.Decimal, 8, "SALES_AMOUNT")

            'トランザクションの設定
            da.InsertCommand.Transaction = tran


            'DeleteCommand設定
            da.DeleteCommand = New SqlCommand
            da.DeleteCommand.Connection = con
            da.DeleteCommand.CommandText = "DELETE FROM control WHERE 管理区分 = {'案件区分','性別区分','役職部署','アクセス権限区分',非表示区分'}"

            'da.DeleteCommand.Parameters.Add("@NO", SqlDbType.Decimal, 8, "NO")
            'トランザクションの設定
            da.DeleteCommand.Transaction = tran


            'データを取得
            da.Fill(dts, "control")


            'データセットに格納します。
            da.Fill(dts)

            'テーブルを取得
            Dim dt As DataTable = dts.Tables("control")

            'レコード変更
            UltraGrid1.DataSource = dttable

            'データ更新
            da.Update(dts, "control")

            'トランザクションの実行
            tran.Commit()


            Console.WriteLine("データを更新しました")

        Catch ex As Exception

            Console.WriteLine(ex.ToString)

            'トランザクションをキャンセル
            If tran IsNot Nothing Then
                tran.Rollback()
            End If

            Console.WriteLine("データの更新を取消しました")

        Finally

            '接続を閉じる
            If Not con.State = ConnectionState.Closed Then
                con.Close()
            End If

            'リソースの解放
            da.Dispose()
            tran.Dispose()
            con.Dispose()

        End Try
匿名 2016 11/30 質問 VB(ビジュアルベーシック)

ログインまたはユーザー登録してから回答してください。

プログラミング・開発言語、VB(ビジュアルベーシック) の企業/事業者/教室/プロの方のホームページの集客、アクセスアップ、SEO対策効果が期待できるリスティングサイト=Ask-itをぜひご活用ください

Ask IT にようこそ。ここではコミュニティメンバーに質問したり、回答を得ることができます。
ITについて質問したい方へ ITについてプロに質問したい方は会員登録後すぐに質問をする事ができます。

プロフェッショナルの方へ 質問に答えていただけるプロフェッショナルの方は下記をご覧下さい

お気づきの点があれば是非お知らせください
...