System.InvalidOperationException
には、この行に未公開のDatareaderがあるという追加の情報があります。OleDbCommand unclosed Datareaderエラー
MyCmd.ExecuteNonQuery()
MyCmd
は、すべての潜水艦のためのプライベート変数にアクセス可能であり、このパラメータが追加された後
MyCmd = New OleDb.OleDbCommand()
MyCmd.CommandText = "Insert Into Netzwerkverwaltung(NSub, Nip, Npc, Nuser, Pherst, Pser, Pmod, Pcpu, Phdd, Pram, Pkauf, Sos, Sosoem, Sosopen, Sfunk, Soffice, Sofficeoem, Sofficeopen, Anmerkung) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);"
MyCmd.Connection = MyCon
として宣言されています。
私はMyCon
をSub beforeでDatareaderで使用していますが、デバッグ時にDatareaderが閉じられてもまだ動作しません。
Dim myDR As OleDb.OleDbDataReader
MyCmd = New OleDb.OleDbCommand("SELECT * FROM Netzwerkverwaltung WHERE ID=?", MyCon)
MyCmd.Parameters.Add(New System.Data.OleDb.OleDbParameter("ID", System.Data.OleDb.OleDbType.Integer))
MyCmd.Parameters("ID").Value = Request("ID")
If MyCon.State = ConnectionState.Closed Then
MyCon.Open()
End If
myDR = MyCmd.ExecuteReader()
私はDatareaderを実装し、後でそれを閉じて閉じますが、私はそれを二重にチェックしました。
このコードはVS2010 BTWで完全に正常に機能しました。そして私は今VS2015を使っています。
すべての接続、コマンド、データウェアハウスはローカルで作成し、完了したら処分する必要があります。あなたのコードのどこかにあなたは読者を開いたままにしました。 – Plutonix