-1

嗨,我有一个数据库,其中输入了我的重复数据(序列号)。喜欢

序列号 Chalan-no

Abcd1234 VS/12-13/TS/187

Abcd1234 VS/12-13/TS/187

xyz11234 VS/12-13/TS/130

xyz11234 VS/12-13/TS/174

如果我搜索 abcd1234 它,这两个条目都会给我 chalans-no VS/12-13/T-S/187。没关系,但是如果我搜索xyz11234它只会给我 chalans-no VS/12-13/T-S/130,而不是xyz11234& VS/12-13/T-S/174,因为它会检查序列号并给出它的第一次出现。但是如果我想要xyz11234&VS/12-13/T-S/174怎么办?

我正在使用以下代码搜索序列号并为此检索 chalan_no:---

   Private Sub cmbSn_no_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSn_no.SelectedIndexChanged
    'code to fill all details in text boxes when a Sr.No is selected in combobox

    Dim strSelVen As String = ("SELECT * FROM Duplicate_srno where sr_no= @srno")
    Dim comm_SelVen As OleDb.OleDbCommand = New OleDb.OleDbCommand(strSelVen, cnnOLEDB)
    comm_SelVen.Parameters.AddWithValue("@srno", cmbSn_no.Text)
    cnnOLEDB.Open()

    Dim dr As OleDb.OleDbDataReader = comm_SelVen.ExecuteReader

    If dr.Read = True Then

        cmbSn_no.Text = dr("Sr_no")
        cmbChal_no.Text = dr("chalan_no")

    End If
    cnnOLEDB.Close()
    strsrno = cmbSn_no.Text
    strchlno = cmbChal_no.Text
End Sub

请建议我该怎么做。

4

3 回答 3

1

您的代码If dr.Read = True Then ... End If只执行.Read一次,因此您只检索一行。尝试类似的东西Do While dr.read ... Loop

于 2013-04-15T11:01:31.797 回答
0

我没有使用过 OleDBDataReader 但如果它看起来只有一个阅读器。尝试循环方法。

有没有办法一次读取整个表格?在 SQL 世界中,它将是 SqlDataAdapter.fill。

于 2013-04-15T18:07:53.717 回答
0

我假设你有以下课程:

Public Class Data
    Public Property SerialNumber As String
    Public Property ChalanNumber As String
End Class

显示您问题中的值的表使用的是List(Of Data)

Dim myList As New List(Of Data)()

那么操作应该是:

Dim selectedData = myList.Where(Function(e) e.SerialNumber = "xyz11234")

于 2013-04-15T08:16:47.043 回答