数据库查询结果显示在 Label VB.net

Database query result to display in Label VB.net

我有一个标签,我想在其中显示我的数据库查询结果。但是标签只显示第一行而不是所有记录。这里有人可以帮我吗?尝试搜索但我发现其他答案令人困惑。请帮我。

这是我目前的情况。

前端

<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

我做错了什么?谢谢。

Resulttext.Text = dt.Rows(0)("Fullname").ToString

您正在编写上述代码,用于在标签中显示记录。

以上代码的意思是dt.Rows(RowIndex)(ColumnIndex/"Column valuse")

您在 RowIndex 中传递了 0 意味着它为您提供了第一行并在列值中传递了 "FullName",因此它给出了第一行的全名值。

这就是它只显示一条记录的原因。

要显示 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;

因此它以逗号分隔给出全名,然后您可以编写代码

Resulttext.Text = dt.Rows(0)("Fullname").ToString

它为 fullname 提供 CSV 并显示在标签中

已经解决了问题,这里是答案。

  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