如何解决'已经有一个与此命令关联的打开的 DataReader 必须先关闭它' - Dataadapter.Update
直到现在我只使用了没有这种问题的 Mssql Server,但现在我遇到了 MysqL Server 的问题。 我现在知道,MysqL 不支持 MARS(“多个活动结果集”),所以当我调用“Dataadapter.Update”时,我的多线程 VB.NET 服务出错。
Module GlobalVariables
Public eda As MysqLDataAdapter
Public dda As MysqLDataAdapter
Public dst As New ex___Service.ds
End Module
Public Sub Connect2Database(ByRef constr As String)
'MysqL
Dim con As New MysqLConnection(constr)
con.open()
eda = New MysqLDataAdapter("SELECT * FROM tbl1",con)
dda = New MysqLDataAdapter("SELECT * FROM tbl2",con)
Dim cb As MysqLCommandBuilder
cb = New MysqLCommandBuilder(TryCast(eda,MysqLDataAdapter))
eda.InsertCommand = cb.GetInsertCommand
eda.DeleteCommand = cb.GetDeleteCommand
eda.UpdateCommand = cb.GetUpdateCommand
cb = New MysqLCommandBuilder(TryCast(dda,MysqLDataAdapter))
dda.InsertCommand = cb.GetInsertCommand
dda.DeleteCommand = cb.GetDeleteCommand
dda.UpdateCommand = cb.GetUpdateCommand
con.Close()
GetData()
End Sub
Public Sub GetData()
eda.Fill(dst.tbl1)
dda.Fill(dst.tbl1)
End Sub
后来我在多线程环境中调用了一些:
eda.Update(dst.tbl1)
并得到异常:
已经有一个与此命令关联的打开的 DataReader 必须先关闭
是否有选项可以检查是否另一个线程使用更新写入数据库?或者检查连接是否打开?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。