-1

こんにちは、重複したデータ (シリアル番号) が入力されているデータベースがあります。お気に入り

シリアルNos チャランノ

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-noVS/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.Read1 回しか実行しないため、取得する行は 1 行だけです。のようなものを試してください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 に答える