前提・実現したいこと
ExecuteNonQuery: Connection プロパティは初期化されていません
上記のエラーを解消させたいです。
発生している問題・エラーメッセージ
System.InvalidOperationException: 'ExecuteNonQuery: Connection プロパティは初期化されていません。' この例外は、最初にこの呼び出し履歴 System.Data.OleDb.OleDbCommand.ValidateConnection(string) System.Data.OleDb.OleDbCommand.ValidateConnectionAndTransaction(string) System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(System.Data.CommandBehavior, string) System.Data.OleDb.OleDbCommand.ExecuteNonQuery() WindowsApp6.Form1.Button5_Click(Object, System.EventArgs) 場所: Form1.vb System.Windows.Forms.Control.OnClick(System.EventArgs) System.Windows.Forms.Button.OnClick(System.EventArgs) System.Windows.Forms.Button.OnMouseUp(System.Windows.Forms.MouseEventArgs) System.Windows.Forms.Control.WmMouseUp(ref System.Windows.Forms.Message, System.Windows.Forms.MouseButtons, int) System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message) ... [呼び出し履歴が切り捨てられました] でスローされました
該当のソースコード
'更新 Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'Access接続準備 Dim command As OleDbCommand Dim cnAccess As OleDbConnection = New OleDbConnection() 'SQL、更新 Dim cm As New OleDbCommand("UPDATE table2 Set [出勤時間(時)] = @syukkinJikan where 日付 = @hiduke") '作成した接続文字列を設定 cnAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database2.mdb" 'Access接続開始 cnAccess.Open() 'SQL文の実行 cm.ExecuteNonQuery() '終了 command.Dispose() cnAccess.Close()
別のソースコードではエラーになりませんでした。
下記は別のソースコードです。
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 'Access接続準備 Dim command As New OleDbCommand Dim cnAccess As OleDbConnection = New OleDbConnection() 'SQL文作成 Dim cm As New OleDbCommand("INSERT INTO table2 ( 日付,[出勤時間(時)],[出勤時間(分)],[退勤時間(時)],[退勤時間(分)],給料) VALUES(@hiduke,@syukkinJikan,@syukkinHun,@taikinJikan,@taikinHun,@TextBox2.Text)", cnAccess) 'パラメーター化 cm.Parameters.Add(New OleDbParameter("@hiduke", hiduke)) cm.Parameters.Add(New OleDbParameter("@syukkinJikan", syukkinJikan)) cm.Parameters.Add(New OleDbParameter("@syukkinHun", syukkinHun)) cm.Parameters.Add(New OleDbParameter("@taikinJikan", taikinJikan)) cm.Parameters.Add(New OleDbParameter("@taikinHun", taikinHun)) cm.Parameters.Add(New OleDbParameter("@TextBox2.Text", TextBox2.Text)) '作成した接続文字列を設定 cnAccess.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Database2.mdb" 'Access接続開始 cnAccess.Open() 'SQL文の実行 cm.ExecuteNonQuery() '終了 command.Dispose() cnAccess.Close()
使っているツールのバージョンなど補足情報
ACCESSのバージョン2016
Windows10の64ビット
WindowsForms
Visual Studio2019
NET Framework 4.8
AccessDatabaseEngine.exeインストール済です。
以上になります。
ご教示よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー