我有一个标签,我想在其中显示我的数据库查询结果。但标签只显示第一行而不是所有记录。这里的任何人都可以帮我这个吗?尝试搜索,但我发现其他答案令人困惑。请帮我。
这是我到目前为止所拥有的。
前端
<asp:Label ID="Resulttext" runat="server" Text=""></asp:Label>
后端
Protected Sub getUser()
Dim dt As New DataTable()
Dim conn As SqlConnection = New SqlConnection("myconnectionhere")
conn.Open()
Dim cmd As SqlCommand = New SqlCommand("mysqlhere", conn)
Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
da.SelectCommand = cmd
da.Fill(dt)
If dt.Rows.Count > 0 Then
Resulttext.Text = dt.Rows(0)("Fullname").ToString
End If
conn.Close()
End Sub
我做错了什么?谢谢。
答案 0 :(得分:0)
Resulttext.Text = dt.Rows(0)("Fullname").ToString
您正在为Lable中的显示记录编写上述代码。
上述代码的含义为dt.Rows(RowIndex)(ColumnIndex/"Column valuse")
你在RowIndex中传递了0意味着它给你第一行并传递了#34; FullName&#34;在列值中,所以它给出第一行的全名值。
这就是为什么它只显示一条记录。
要显示FullName的所有值,您必须更改您的查询,如下所示。
select distinct t1.id,
STUFF(
(SELECT ', ' + FullName
FROM yourtable t2
where t1.id = t2.id
FOR XML PATH (''))
, 1, 1, '') AS fullname
from yourtable t1;
因此它将fullName以逗号分隔,然后您可以编写代码
Resulttext.Text = dt.Rows(0)("Fullname").ToString
它为CSV
提供fullname
并显示在标签
答案 1 :(得分:0)
已经解决了问题,这就是答案。
If dt.Rows.Count > 0 Then
For i As Integer = 0 To dt.Rows.Count - 1
Resulttext.Text = dt.Rows(i)("Fullname").ToString & " " & Resulttext.Text
Next
End If