我正在尝试执行存储过程并手动将数据放在数据网格中(不使用.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
任何提示?
答案 0 :(得分:2)
您可以使用SqlDataAdapter而不是DataReader来设置SqlConnection和SqlCommand,然后调用SqlDataAdapter的Fill方法传递要填充的DataTable。
由于DataReader返回2个结果集,因此必须使用DataSet。您仍将使用SqlDataAdapter来实现此目的,但不是在Fill方法中传递DataTable,而是传递DataSet,它将在该DataSet中创建2个DataTable。