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

时间:2016-07-22 03:13:06

标签: asp.net vb.net datatable vb.net-2010

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

这是我到目前为止所拥有的。

前端

<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

我做错了什么?谢谢。

2 个答案:

答案 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