我正在尝试将数据从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
答案 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