トランザクション処理によって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