0

SQLServerからフォームにデータを取得しようとしています。私は以下のコードで試しています。これを実行すると、最初のアイテムまたは行が表示されますが、残りのアイテムをリストビューにロードできません。誰かが私の問題を解決するのを手伝ってもらえますか?

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()

2番目の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 に答える