我得到一個System.InvalidOperationException
與額外的信息說在這一行中有一個未關閉的數據讀取器。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
這個參數被添加之後。
我在Sub中使用MyCon
,但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中工作得很好。我現在正在與VS2015合作。
所有的連接,命令,數據收集器都應該在本地創建,並在完成它們後處置。在你的代碼中的某處,你打開了一個閱讀器。 – Plutonix