从SQL Server将数据加载到listview控件

时间:2012-10-22 19:46:25

标签: sql-server vb.net

我正在尝试将数据从SQL Server检索到我的表单中。我正在尝试使用以下代码。当我运行这个时,我得到第一个项目或行,但我无法将其余项目加载到我的列表视图中。有人可以帮忙解决我的问题吗?

Sub GetInvoiceDetails()
    Dim Inv As New petClass
    Dim dt As DataTable = Inv.GetInvoiceDetailsbyNo(txtInvoiceNo.Text)
    If dt.Rows.Count > 0 Then
        For Each row In dt.Rows
            srno += 1
            Dim lstitem = Lstview.Items.Add(srno)
            lstitem.SubItems.Add(dt.Rows(0).Item("ItemName").ToString)
            lstitem.SubItems.Add(dt.Rows(0).Item("SellingPrice".ToString)).ToString()
        Next
    End If
    'clearcontrols
End Sub

2 个答案:

答案 0 :(得分:0)

我首先看到的是,您只引用数据表的第一行。 试试这个:

Sub GetInvoiceDetails()
    Dim Inv As New petClass
    Dim dt As DataTable = Inv.GetInvoiceDetailsbyNo(txtInvoiceNo.Text)
    If dt.Rows.Count > 0 Then
        For Each row In dt.Rows
            srno += 1
            Dim lstitem = Lstview.Items.Add(srno)
            lstitem.SubItems.Add(row.Items("ItemName").ToString)
            lstitem.SubItems.Add(row.Items("SellingPrice".ToString)).ToString()
        Next
    End If
    'clearcontrols
End Sub

接下来,我对你在这里要做的事情感到有点困惑:

            lstitem.SubItems.Add(row.Items("SellingPrice".ToString)).ToString()

你不应该需要第二个ToString(),不需要??

答案 1 :(得分:0)

您始终使用dt.Rows(0)在DataTable中使用第一行。

相反:

For Each row As DataRow In dt.Rows
    srno += 1
    Dim lstitem = Lstview.Items.Add(srno)
    lstitem.SubItems.Add(row.Field(of String)("ItemName"))
    lstitem.SubItems.Add(row.Field(Of String)("SellingPrice"))
Next