OleDbCommand unclosed Datareader Error

时间:2016-08-05 07:13:50

标签: vb.net oledb

我得到一个Template.task.events({ 'focus .edit':function(event){ $("#save").show(); }, }); 的附加信息,说明此行中有一个未关闭的Datareader。

System.InvalidOperationException

MyCmd.ExecuteNonQuery() 是一个可供所有潜艇使用的私人变量,并声明为

MyCmd

在此之后添加参数。

我在Sub中使用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 之前使用Datareader但在调试时Datareader已关闭,但它仍然无效。

MyCon

我实现Datareader并稍后关闭它,它关闭了,我仔细检查了。
这段代码在VS2010 BTW中运行得非常好。我现在正在与VS2015合作。

1 个答案:

答案 0 :(得分:0)

如果您收到一条错误消息,告诉您该连接上打开了数据读取器,那么几乎可以肯定。这就是为什么你应该总是使用Using块作为短期的一次性对象,例如

Using myDataReader = myCommand.ExecuteReader()
    'Use myDataReader here.'
End Using

读者将在End Using行隐式关闭,因此您不会意外地将其打开。根据具体情况,您可能也应该对您的连接做同样的事情。