asp.net GridView不显示存储过程中的数据

时间:2010-01-29 12:11:08

标签: .net asp.net vb.net gridview datagridview

我有两个GridViews,第一个工作正常,因为当我通过visual studio将它放到asp页面时我定义了数据源并指定了要使用的表。

其他GridView(下面的dgvParams)刚刚被放到asp页面上,我想在运行时使用它:

Imports System.Data
Imports System.Data.SqlClient
Imports myDataBase

Partial Class TestWeb
    Inherits System.Web.UI.Page

    Dim data As New cDatabase

    Public Sub New()

    End Sub

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

        LoadParamsGrid()
    End Sub

    Public Sub LoadParamsGrid()


        ' Create the dataset
        Dim strCon As String = data.DBConn.ConnectionString
        Dim strSQL As String = "dbo.GetParameters"
        Dim dataAdapter As New SqlDataAdapter(strSQL, strCon)
        Dim table As New DataTable

        Try
            dataAdapter.Fill(table)
        Catch ex As Exception
            ' try again
            dataAdapter.Fill(table)
        End Try

        dgvParams.DataSource = table
        dgvParams.DataBind()


    End Sub

End Class

当我单步执行代码时,我可以看到行和列计数符合预期,并调用“dgvParams.DataSource = table”。

我想我错过了某个地方的另一个步骤,以便我可以在GridView上实际查看数据?有什么建议吗?

谢谢

3 个答案:

答案 0 :(得分:1)

dgvParams上的AutoGenerateColumns属性是设置为True还是已经明确定义的列?

答案 1 :(得分:0)

我指责将表格用于数据集,它只是“工作”......虽然不是马上就行!不确定是什么使这项工作,但这是我现在使用的:

Dim ds As New DataSet

Try
    dataAdapter.Fill(ds)
Catch ex As Exception
    ' try again
    dataAdapter.Fill(ds)
End Try

dgvParams.DataSource = ds.Tables(0)
dgvParams.DataBind()

答案 2 :(得分:0)

你有:

dgvParams = new GridView();

但我看不到你把它添加到网页的哪个位置,所以你可以看到它。必须将任何动态创建的控件添加到页面的控件集合或其他控件,如:

panel.Controls.Add(dgvParams);

其中,面板用于标记要在网页中放置gridview的位置。或者,嵌入页面,给它dgvParams ID,然后绑定到它。

或者,如果你已经在页面中有dgvParams,则删除dgvParams = new GridView()语句。

此外,如果绑定到数据集,则需要将DataMember设置为数据表名称,以便它知道要绑定到哪个表。

HTH。