读取器关闭时对MetaData的尝试无效。 [英] Invalid attempt to MetaData when reader is closed.

查看:74
本文介绍了读取器关闭时对MetaData的尝试无效。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尊敬的先生,

i得到错误读者关闭时对MetaData的尝试无效。

我的代码如下:

< pre lang =xml>受保护的子btn_ser_Click(ByVal sender As Object,ByVal e As System.EventArgs)处理btn_ser.Click
report()
End Sub
子报告()
尝试
'Dim conn As New SqlConnection(conStr)
conn.Open()
divprit.Visible = True
Dim w_fr_dt As String = Dt_mdy2ymd(txt_from.Text)
Dim w_to_dt As String = Dt_mdy2ymd(txt_to.Text)
Dim sql As String =select * from tblDLR_RegData where fromDate> ='+ w_fr_dt +'and fromDate < =' + w_to_dt + '

Dim cmd 作为 New SqlCommand(s ql, conn)

Dim dr As SqlDataReader = cmd.Execu teReader()

< span class =code-attribute> Dim db 作为 < span class =code-attribute> StringBuilder

< span class =code-attribute> Dim office_cd 作为 字符串 < span class =code-attribute> = 会话( Office_Cd)

dr.Read()

'Dim na 作为 字符串 =
db.Append( < tr 样式 =' font-size:x-small' > < td 样式 =' text-align:left' >
db.Append(dr( keyId))
db.Append(< / td >
db.Append(< td 样式 =' text-align:left' >
'db.Append(dr(dlrId))
db.Append(dlrnm(dr(dlrId),office_cd).ToString()+< / td >
db.Append( < / td >
db.Append(< td 样式 =' text-align:left' >
db.Append(dr(searies))
db.Append(< / td >
db.Append(< ; td 样式 =' text-align:left' < span class =code-keyword>> )
db.Append(dr(fromRegNo))
db.Append(< / td >
db.Append(< td < span class =code-attribute> 样式 =' text-align:left' >
db.Append(dr(toRegNo))
db.Append(< / td >
db.Append(< td 样式 =' t ext-align:left' >
db.Append(dr(fromDate))
db.Append (< / td >
db.Append(< td 样式 =' text-align:left' >
db.Append(dr( toDate))
db.Append(< / td >
db.Append(< / tr >
结束时
lblReport.Text = db.ToString
Catch ex As Exception
Last
conn.Close()
End Try
End Sub



 私人 功能 dlrnm(  ByVal  dlrid 作为 字符串 ByVal  officecd 作为 字符串
Dim qrydlrnm = 从Dealer_Mast中选择*,其中DLR_Cd =& dlrid& 和Office_Cd ='&办公室& '
Dim cmd1 作为 SqlCommand = SqlCommand(qrydlrnm,conn)
conn.Close()
conn.Open()
Dim read1 As SqlDataReader = cmd1.ExecuteReader()
read1.Read()
Dim DLR_Name As String = read1( DLR_Name)。ToString()
' read1.Close()
' conn.Close()
返回 DLR_Name
结束 功能



请尽快回复

谢谢和问候

Umesh Daiya

解决方案

使用

 私有 功能 dlrnm( ByVal  dlrid 作为 字符串 ByVal  officecd  As   String 
Dim qrydlrnm = 从Dealer_Mast中选择*,其中DLR_Cd =& dlrid& 和Office_Cd ='&办公室& '
Dim cmd1 作为 SqlCommand = SqlCommand(qrydlrnm,conn)
conn.Close()
conn.Open()
Dim read1 As SqlDataReader = cmd1.ExecuteReader()
while read1.Read()
Dim DLR_Name 作为 字符串 = read1( DLR_Name)。ToString()
read1.Close() ' 取消注释此行
结束 while
' conn.Close()
返回 DLR_Name
结束 功能


Respected Sir,
i get error "Invalid attempt to MetaData when reader is closed."
my code is as below:

Protected Sub btn_ser_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_ser.Click
        report()
    End Sub
    Sub report()
        Try
            'Dim conn As New SqlConnection(conStr)
            conn.Open()
            divprit.Visible = True
            Dim w_fr_dt As String = Dt_mdy2ymd(txt_from.Text)
            Dim w_to_dt As String = Dt_mdy2ymd(txt_to.Text)
            Dim sql As String = "select * from tblDLR_RegData where fromDate>='" + w_fr_dt + "' and fromDate<='" + w_to_dt + "'"

            Dim cmd As New SqlCommand(sql, conn)

            Dim dr As SqlDataReader = cmd.ExecuteReader()

            Dim db As New StringBuilder

            Dim office_cd As String = Session("Office_Cd")

            While dr.Read()

                'Dim na As String =
                db.Append("<tr Style='font-size:x-small'><td Style='text-align: left'>")
                db.Append(dr("keyId"))
                db.Append("</td>")
                db.Append("<td  Style='text-align: left'>")
                'db.Append(dr("dlrId"))
                db.Append(dlrnm(dr("dlrId"), office_cd).ToString() + "</td>")
                db.Append("</td>")
                db.Append("<td  Style='text-align: left'>")
                db.Append(dr("searies"))
                db.Append("</td>")
                db.Append("<td  Style='text-align: left'>")
                db.Append(dr("fromRegNo"))
                db.Append("</td>")
                db.Append("<td  Style='text-align: left'>")
                db.Append(dr("toRegNo"))
                db.Append("</td>")
                db.Append("<td  Style='text-align: left'>")
                db.Append(dr("fromDate"))
                db.Append("</td>")
                db.Append("<td  Style='text-align: left'>")
                db.Append(dr("toDate"))
                db.Append("</td>")
                db.Append("</tr>")
            End While
            lblReport.Text = db.ToString
        Catch ex As Exception
        Finally
            conn.Close()
        End Try
    End Sub


Private Function dlrnm(ByVal dlrid As String, ByVal officecd As String)
        Dim qrydlrnm = "select * from Dealer_Mast where DLR_Cd=" & dlrid & " and Office_Cd='" & officecd & "'"
        Dim cmd1 As SqlCommand = New SqlCommand(qrydlrnm, conn)
        conn.Close()
        conn.Open()
        Dim read1 As SqlDataReader = cmd1.ExecuteReader()
        read1.Read()
        Dim DLR_Name As String = read1("DLR_Name").ToString()
        'read1.Close()
        'conn.Close()
        Return DLR_Name
    End Function


plz reply as soon as possible
Thanks and Regards
Umesh Daiya

解决方案

Use while

Private Function dlrnm(ByVal dlrid As String, ByVal officecd As String)
        Dim qrydlrnm = "select * from Dealer_Mast where DLR_Cd=" & dlrid & " and Office_Cd='" & officecd & "'"
        Dim cmd1 As SqlCommand = New SqlCommand(qrydlrnm, conn)
        conn.Close()
        conn.Open()
        Dim read1 As SqlDataReader = cmd1.ExecuteReader()
        while read1.Read()        
        Dim DLR_Name As String = read1("DLR_Name").ToString()
        read1.Close()'Uncommented this line        
        End while        
        'conn.Close()
        Return DLR_Name
    End Function


这篇关于读取器关闭时对MetaData的尝试无效。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆