2016-07-22 110 views
0

我有一个标签,我想在其中显示我的数据库查询结果。但标签只显示第一行不是所有的记录。任何人都可以帮助我吗?尝试搜索,但我发现其他答案混淆。请帮帮我。要在标签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 

我做错了什么?谢谢。

回答

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 
0
Resulttext.Text = dt.Rows(0)("Fullname").ToString 

您正在为Lable中的显示记录编写代码。上面的代码

含义是dt.Rows(RowIndex)(ColumnIndex/"Column valuse")

你在的rowIndex通过0意味着它可以让你第一行和列值传递的“全名”,所以它给人第一行的全称值。

这就是为什么它只显示一条记录。

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

,它给CSVfullname,并显示在标签

+0

没有我的查询是正确的。我问的是在标签中它只显示一个必须是多个的记录。我试图在SQL中运行我的查询,查询结果是2全名前。乔纳娜和里卡的标签只显示琼娜不是这两个记录。这是我关心的地方。谢谢。 –

+0

请增加标签宽度,可能是标签宽度的问题。 –