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

VB.NET源码-156个实用实例哦…… <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
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), Integer)

If count Then

melement(k, 0) = myreader3(j)

Else

melement(k, 0) = DBNull.Value.ToString

End If

melement(k, 1) = "0 "

Next

myreader3.Close()

mycommand1.Dispose()

End Sub

这是类里的一个方法> ..
__________________________________________________________________________
你前面1个方法了,调用CongGouToDB方法之前调用的方法.
__________________________________________________________________________
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值