0

さて、プロジェクトでは Datagridview を使用することは許可されていません。代わりに、Listbox を使用して、検索時にデータベースからデータを表示する必要があります。以下にコードをリンクします。このコードをリストボックスに合わせて変更する方法を誰か教えてください。私はプログラミング初心者なので、明らかな間違いがあればご容赦ください

Imports System.Data Imports System.Data.OleDb パブリック クラス frmUserList

Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
    Me.Close()
End Sub
Private Sub Load_Record()
    Dim conn As New OleDbConnection
    Dim cmd As New OleDbCommand
    Dim da As New OleDbDataAdapter
    Dim dt As New DataTable
    Dim sSQL As String = String.Empty

    'try catch block is used to catch the error
    Try
        'get connection string declared in the Module1.vb and assing it to conn variable
        conn = New OleDbConnection(Get_Constring)
        conn.Open()
        cmd.Connection = conn
        cmd.CommandType = CommandType.Text
        sSQL = "SELECT user_id,  last_name + ', ' + first_name + ' ' + mid_name as name FROM users where last_name + ', ' + first_name + ' ' + mid_name like '%" & Me.txtSearch.Text & "%' or [first_name] = '" & Me.txtSearch.Text & "'"

        cmd.CommandText = sSQL
        da.SelectCommand = cmd
        da.Fill(dt)

        Me.dtgResult.DataSource = dt
        If dt.Rows.Count = 0 Then
            MsgBox("No record found!")
        End If

    Catch ex As Exception
        MsgBox(ErrorToString)
    Finally
        conn.Close()
    End Try
End Sub

Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
    Load_Record()
End Sub

Private Sub dtgResult_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtgResult.DoubleClick
    If Me.dtgResult.SelectedRows.Count > 0 Then
        Dim frm As New frmMarkSeat
        frm.txtFname.Tag = Me.dtgResult.Item(0, Me.dtgResult.CurrentRow.Index).Value
        frm.ShowDialog()
        frm = Nothing
    End If
End Sub

クラス終了

4

1 に答える 1

0

これを使ってみてくださいSQLDataReader:(テストされていないコード、手に負えないように書いただけです)。

'start here
conn.Connection.Open()
Dim sqlDR As SqlDataReader
Dim colValue As String

 sqlDR = conn.ExecuteReader
 While sqlDR.Read
   colValue = (sqlDR.GetValue(0)).ToString
   ItemlistBox.Items.Add(colValue)
   ItemlistBox.Sorted = True
 End While

 conn.Connection.Close()

または、追加のオブジェクトを使用して現在のオブジェクトを引き続き使用しDataSet、リストボックスにデータを入力することもできます。

Dim dtset As New DataSet
Dim da As New OleDbDataAdapter

da.Fill(dtset)
ItemListBox.DataSource = dtset
ItemListBox.DisplayMember = "ColName"
于 2013-02-25T15:19:38.583 に答える