Asp.net 尝试使用VB ASPX调用存储过程

Asp.net 尝试使用VB ASPX调用存储过程,asp.net,vb.net,sql-server-2005,stored-procedures,aspxgridview,Asp.net,Vb.net,Sql Server 2005,Stored Procedures,Aspxgridview,我正在尝试执行一个存储过程并手动将数据放入datagrid(不使用.net向导)。我正在visual studio中使用vb.net和asp.net 这是我的代码,但我不知道哪里出错了 Imports System.Data.Sql, Imports System.Data.SqlClient Imports System.Diagnostics Imports System Imports System.Configuration Imports System.Data Imports Sys

我正在尝试执行一个存储过程并手动将数据放入datagrid(不使用.net向导)。我正在visual studio中使用vb.net和asp.net

这是我的代码,但我不知道哪里出错了

Imports System.Data.Sql,
Imports System.Data.SqlClient
Imports System.Diagnostics
Imports System
Imports System.Configuration
Imports System.Data
Imports System.Collections.Generic        
Partial Public Class WebForm3
Inherits System.Web.UI.Page



Dim myConn As New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))

Public Cmd As New SqlCommand
Private _storedProc As String

Dim Conn As New SqlConnection(ConfigurationManager.AppSettings("ConnectionString").ToString)

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        Dim dt As SqlDataReader
        Cmd.CommandType = CommandType.StoredProcedure
        Cmd.CommandText = "proc_getTEST"
        Cmd.Connection = Conn

        Conn.Open()

        Try
            dt = Cmd.ExecuteReader
            GridView1.DataSource = dt
            GridView1.DataBind()
            Conn.Dispose()
        Catch ex As Exception
        End Try
    End If
End Sub
End Class

有什么提示吗?

您可以使用SqlDataAdapter,而不是DataReader,您可以在其中设置要执行的SqlConnection和SqlCommand,然后调用传递要填充的DataTable的SqlDataAdapter的Fill方法


由于DataReader返回2个结果集,因此必须为此使用数据集。为此,您仍将使用SqlDataAdapter,但不是在Fill方法中传递DataTable,而是传递一个DataSet,它将在该DataSet内创建两个DataTables。

因此类似于:
Try dt=New DataTable da.Fill(dt)GridView1.DataSource=dt GridView1.EmptyDataText=“未找到任何记录”GridView1.DataBind()Conn.Dispose()Catch ex作为异常结束尝试
请尝试注释行“Conn.Dispose()”,因为DataReader需要连续连接