2010-11-29 16 views
0

Je veux demander une faveur. J'affiche les données dans l'accès à la vb.net en utilisant la liste, mais si je veux sélectionner un nom ne peut pas. Pouvez-vous m'aider? codage a été fait, mais je ne sais pas où la fautesélectionnez les données dans la liste

Imports System.Data.OleDb 
Imports System.Data 
Public Class Guest_List 
    Dim cnn As OleDbConnection 
    Dim cmmd As OleDbCommand 
    Dim dReader As OleDbDataReader 
    Public title, FirstName, LastName, Address, Country, Company, DateIn, DateOut, RoomType, Note As String 
    Private Sub Guest_List_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     Call list_data() 
    End Sub 

    Private Sub txtKataKunci_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtKataKunci.TextChanged 
     Call list_data() 
    End Sub 

    Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged 
     Call pilih() 
    End Sub 

    Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click 
     Call pilih() 
    End Sub 

    Private Sub list_data() 

     Call clear_list() 
     Dim sqlx As String 
     Dim x As Integer 

     sqlx = "select title,firstname,lastname,address,country,company,datein,dateout,roomtype,notes from tcekin where firstname like '%" & Trim(txtKataKunci.Text) & "%' order by firstname asc" 

     cnn = New OleDbConnection(strConn) 
     If cnn.State <> ConnectionState.Closed Then cnn.Close() 
     cnn.Open() 
     cmmd = New OleDbCommand(sqlx, cnn) 
     dReader = cmmd.ExecuteReader 

     Try 
      While dReader.Read = True 
       x = Val(counter.Text) 
       counter.Text = Str(Val(counter.Text) + 1) 

       With ListView1 
        .Items.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(ListView1.Items.Count - 1).SubItems.Add("") 
        .Items(x).SubItems(0).Text = dReader.GetString(0) 
        .Items(x).SubItems(1).Text = dReader.GetString(1) 
        .Items(x).SubItems(2).Text = dReader.GetString(2) 
        .Items(x).SubItems(3).Text = dReader.GetString(3) 
        .Items(x).SubItems(4).Text = dReader.GetString(4) 
        .Items(x).SubItems(5).Text = dReader.GetString(5) 
        .Items(x).SubItems(6).Text = Format(CDate(dReader.GetDateTime(6)), "dd-MMMM-yyyy") 
        .Items(x).SubItems(7).Text = Format(CDate(dReader.GetDateTime(7)), "dd-MMMM-yyyy") 
        .Items(x).SubItems(8).Text = dReader.GetString(8) 
        .Items(x).SubItems(9).Text = dReader.GetString(9) 
       End With 
      End While 
     Finally 
      dReader.Close() 
     End Try 
     cnn.Close() 
    End Sub 

    Private Sub clear_list() 
     While Val(counter.Text) > 0 
      ListView1.Items(0).Remove() 
      counter.Text = Val(counter.Text) - 1 
     End While 
    End Sub 

    Private Sub pilih() 
     Try 
      title = ListView1.SelectedItems(0).SubItems(0).Text.ToString 
      FirstName = ListView1.SelectedItems(0).SubItems(1).Text.ToString 
      LastName = ListView1.SelectedItems(0).SubItems(2).Text.ToString 
      Address = ListView1.SelectedItems(0).SubItems(3).Text.ToString 
      Country = ListView1.SelectedItems(0).SubItems(4).Text.ToString 
      Company = ListView1.SelectedItems(0).SubItems(5).Text.ToString 
      DateIn = ListView1.SelectedItems(0).SubItems(6).Text.ToString 
      DateOut = ListView1.SelectedItems(0).SubItems(7).Text.ToString 
      RoomType = ListView1.SelectedItems(0).SubItems(8).Text.ToString 
      Note = ListView1.SelectedItems(0).SubItems(9).Text.ToString 
      Me.Close() 
     Catch ex As Exception 
      MsgBox("pilih salah satu data", MsgBoxStyle.Information) 
     End Try 

    End Sub 
End Class 

Répondre

1

Que voulez-vous dire par "choisir un nom"? Essayez-vous d'interroger un nom spécifique de la base de données?

Changer votre SQLX à

String.Format("select title,firstname,lastname,address,country,company,datein,dateout,roomtype,notes from tcekin where firstname like '%{0}%' order by firstname asc", txtKataKunci.Text.Trim()) 

Ensuite, ajoutez un point d'arrêt sur le lecteur, appuyez sur F5 et voir si les données revient du db. Vous pouvez également essayer d'exécuter la requête directement sur la base de données d'accès.

0

Essayez de lier votre datareader à votre listview en utilisant un BindingSource

De cette façon, vous aurez tous les enregistrements renvoyés par l'instruction SQL.