加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[VB.NET]datareader的问题!!!!!

发布时间:2020-12-16 23:49:18 所属栏目:大数据 来源:网络整理
导读:datareader的问题!!!!! 我在一个类里的一个方法用到了datareader对象,并在方法结束前将他close了.可是我在用这个类建立了两个对象时,第二个对象在用到了这个方法时却总是提示:已有打开的与此命令相关联的 DataReader,必须首先将它关闭.如何解决啊!!! ______
datareader的问题!!!!! 我在一个类里的一个方法用到了datareader对象,并在方法结束前将他close了.可是我在用这个类建立了两个对象时,第二个对象在用到了这个方法时却总是提示:已有打开的与此命令相关联的 DataReader,必须首先将它关闭.如何解决啊!!! __________________________________________________________________________ 说明你同1个链接同时打开了2个datareader,必须先关闭1个datareader,要么就开第2个datareader的时候用个新的链接 __________________________________________________________________________ 1/ 我的连接是对象的一个属性,是在对象new时传递进去的.难道连接传递的是地址吗? 2/ 在我的类的方法里,在最后已经进行了close为什么还是不行呢? __________________________________________________________________________ 1/ 我的连接是对象的一个属性,是在对象new时传递进去的.难道连接传递的是地址吗? ----------------------- 你传的是同1个链接吧,你有没有new2次链接就知道了 2/ 在我的类的方法里,在最后已经进行了close为什么还是不行呢? -------------------------- 一起错误的原因是在你close之前就又开了1个DataReader。 PS:最好贴出你的代码看看 __________________________________________________________________________ 原码如下: Public Sub CongGouToDB(ByVal datetime As Date) geshi = Split(my_meta1.FileFieldOrder,",") geshi1 = Split(my_meta1.attributeOrder,": ") geshi2 = Split(my_meta1.attributeOrder1,": ") zidonggeshi1 = Split(my_meta2.attributeOrder,": ") zidonggeshi2 = Split(my_meta2.attributeOrder1,": ") Dim mycommandstr As String Dim mycommand1 As SqlCommand Dim myreader3 As SqlDataReader Dim count As Boolean mycommandstr = "SELECT * FROM " + Trim(my_meta1.tableName) + " where StationID = '' " + Trim(my_meta1.stationID) + " '' and ObservDate= '' " + datetime.ToShortDateString + " ''and ObservTime= '' " + datetime.ToLongTimeString + " '';SELECT * FROM " + my_meta2.tableName + " where StationID = '' " + my_meta2.stationID + " '' and ObservDate= '' " + datetime.ToShortDateString + " ''and ObservTime= '' " + datetime.ToLongTimeString + " '' " mycommand1 = New SqlCommand(mycommandstr,myconnection) myreader3 = mycommand1.ExecuteReader() 这句是出错的地方!!!! count = myreader3.Read() Dim i,k,j As Integer For i = 0 To geshi2.Length - 1 k = CType(geshi2(i),Integer) j = CType(geshi1(i + 1),Integer) If count Then melement(k,0) = myreader3(j) Else melement(k,0) = DBNull.Value.ToString End If melement(k,1) = "0 " Next myreader3.NextResult() count = myreader3.Read() For i = 0 To zidonggeshi2.Length - 1 k = CType(zidonggeshi2(i),Integer) j = CType(zidonggeshi1(i + 1),1) = "0 " Next myreader3.Close() mycommand1.Dispose() End Sub 这是类里的一个方法> .. __________________________________________________________________________ 你前面1个方法了,调用CongGouToDB方法之前调用的方法. __________________________________________________________________________

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读