我需要有关将数据返回到 ASP.NET 网页的帮助。
总结一下:我有一个 SQL 查询,它返回一个包含 20 列的数据表。它在 SQL 中进行一些操作,以仅返回用户指定的列,因此,例如,用户可能不会发现返回的某些数据有用,因此我不希望在前端返回这些数据。
所有操作都发生在 SQL 中,因此如果他们不需要特定的 5 列,则脚本可以正常返回相关的 15 列。
我的问题是如何让我的数据绑定在网页上工作。 我已经获得了让数据表运行脚本的代码。我希望它显示每列的标题和返回的数据表。
任何帮助或任何对我阅读有用的文章将不胜感激。
谢谢 罗布
嗯,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
结果是这样的:
因此,如您所见,我们可以为 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