尝试使用VB ASPX调用存储过程

时间:2012-02-29 10:38:29

标签: asp.net vb.net sql-server-2005 stored-procedures aspxgridview

我正在尝试执行存储过程并手动将数据放在数据网格中(不使用.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

任何提示?

1 个答案:

答案 0 :(得分:2)

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

由于DataReader返回2个结果集,因此必须使用DataSet。您仍将使用SqlDataAdapter来实现此目的,但不是在Fill方法中传递DataTable,而是传递DataSet,它将在该DataSet中创建2个DataTable。