2010-01-29 52 views
0

我有两个GridView,第一个正常工作,因为我通过visual studio将它放到asp页面上时定义了数据源,并且我指定了要使用的表格。asp.net GridView不显示来自存储过程的数据

其他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上的数据?有什么建议么?

谢谢

+0

您是否缺少DataBind? dgvParams.DataSource.DataBind设置数据源后 – 2010-01-29 12:15:49

+0

我试过了,但仍然没有在GridView中获得任何数据。我更新了上面的源代码以反映它。谢谢 – Belliez 2010-01-29 12:19:30

回答

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() 
+0

hi 您为什么要再次在阴极块中尝试“dataAdapter.Fill(ds)”? – nWorx 2010-01-29 14:45:02

1

是在设置为True dgvParams的AutoGenerateColumns属性或者列已经明确定义?

+0

我尝试了两种方法,他们都没有结果。然后突然,它开始按预期工作!很奇怪。我从使用表格转换为数据集作为测试,可能做了一些不同的事情!虽然它没有尝试,并给出了相同的结果。 – Belliez 2010-01-29 14:37:32

0

您有:

dgvParams = new GridView(); 

但我不明白,你把它添加到网页,这样你就可以看见。任何动态创建控件必须添加到页面的控件集合或像另一个控制:

panel.Controls.Add(dgvParams); 

凡面板将是一个被用来标记要放置在GridView在页面中。或者,在页面中嵌入,为其提供dgvParams标识,并将其绑定到该标识。或者,如果您已经将dgvParams作为一个页面,请删除dgvParams = new GridView()语句。另外,如果绑定到数据集,则需要将DataMember设置为数据表名称,以便知道绑定到哪个表。

HTH。

相关问题