0


0

ストアドプロシージャからのデータが表示されないasp.net GridView

2つのGridViewがあります。1つ目は、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 回答


1


dgvParamsのAutoGenerateColumnsプロパティがTrueに設定されているか、列が既に明示的に定義されていますか?


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


あなたが持っている:

dgvParams = new GridView();

しかし、あなたがそれを見ることができるように、私はあなたがそれをウェブページにどこに追加するかわかりません。 動的に作成されたコントロールは、ページのコントロールコレクションまたは次のような別のコントロールに追加する必要があります。

panel.Controls.Add(dgvParams);

パネルは、ページ内のグリッドビューを配置する場所をマークするために使用されます。 または、ページにを埋め込み、それにdgvParams IDを付けて、代わりにバインドします。

または、ページにすでにdgvParamsがとして存在している場合は、dgvParams = new GridView()ステートメントを削除します。

また、データセットにバインドする場合は、DataMemberにデータテーブル名を設定して、バインドするテーブルを認識させる必要があります。

HTH.