0

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

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
4

2 回答 2

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(),不是吗?

于 2012-10-22T19:50:13.577 回答
0

您始终将 DataTable 中的第一行与dt.Rows(0).

反而:

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
于 2012-10-22T19:51:08.590 回答