如何将动态SQL数据绑定到网页控件?

问题描述 投票:0回答:1

我需要有关将数据返回到 ASP.NET 网页的帮助。

总结一下:我有一个 SQL 查询,它返回一个包含 20 列的数据表。它在 SQL 中进行一些操作,以仅返回用户指定的列,因此,例如,用户可能不会发现返回的某些数据有用,因此我不希望在前端返回这些数据。

所有操作都发生在 SQL 中,因此如果他们不需要特定的 5 列,则脚本可以正常返回相关的 15 列。

我的问题是如何让我的数据绑定在网页上工作。 我已经获得了让数据表运行脚本的代码。我希望它显示每列的标题和返回的数据表。

任何帮助或任何对我阅读有用的文章将不胜感激。

谢谢 罗布

sql asp.net
1个回答
0
投票

嗯,GridView 控件可以获取几乎任何数据源,并用列来呈现它。

所以,说出这个标记:

        <asp:Button ID="cmd1" runat="server" Text="Data source 1 test"
            CssClass="btn"
            OnClick="cmd1_Click"/>

        <asp:Button ID="cmd2" runat="server" Text="Data source 2 test"
            CssClass="btn" style="margin-left:30px"
            OnClick="cmd2_Click"/>

        <br />
        <br />

        <asp:GridView ID="GridView1" runat="server"
            CssClass="table table table-hover"
            width="60%">
        </asp:GridView>

背后的代码:

Protected Sub cmd1_Click(sender As Object, e As EventArgs)

    Dim strSQL As String =
        "SELECT City, HotelName, Description FROM tblHotelsA
        WHERE Description is not null
        ORDER BY HotelName"

    Dim MyTable As DataTable = MyRst(strSQL)
    GridView1.DataSource = MyTable
    GridView1.DataBind()

End Sub

Protected Sub cmd2_Click(sender As Object, e As EventArgs)

    Dim strSQL As String =
        "SELECT FirstName, LastName, City, HotelName, Description FROM tblHotelsA
        WHERE Description Is Not null
        ORDER BY HotelName"

    Dim MyTable As DataTable = MyRst(strSQL)
    GridView1.DataSource = MyTable
    GridView1.DataBind()

End Sub

结果是这样的:

enter image description here

因此,如您所见,我们可以为 GridView 提供您想要的任何 SQL 数据源。

为了完整起见,我使用了我的全局“帮助器”例程之一,它只是返回给定 SQL 的数据表。

因此:

Public Function MyRst(strSQL As String, Optional strCon As String = "") As DataTable
    ' general get any data from SQL

    If strCon = "" Then
        strCon = GetConStr()    ' my defualt connection string
    End If
    Dim rstData As New DataTable
    Using conn As New SqlConnection(strCon)
        Using cmdSQL As New SqlCommand(strSQL, conn)
            conn.Open()
            rstData.Load(cmdSQL.ExecuteReader)
            rstData.TableName = strSQL
        End Using
    End Using
    Return rstData
End Function
© www.soinside.com 2019 - 2024. All rights reserved.