Access Datenbank Problem (Sortierfunktion)

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von mys3lf.

    Access Datenbank Problem (Sortierfunktion)

    Moin,
    Ich habe da ein Problem bei dem ich nicht weiterkomme.
    Ich möchte meine eingelesene Datenbank nach bestimmten Werten durchsuchen, Allerdings nicht nur einen zurzeit sondern mehrere auf einmal.
    z.B.: nicht nur den Namen sondern den Namen und die Telefonnummer
    Zum durchsuchen mit einer "Suchoption" benutze ich folgenden Code:

    VB.NET-Quellcode

    1. Dim con As New OleDbConnection
    2. Dim cmd As New OleDbCommand
    3. Dim reader As OleDbDataReader
    4. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=D:\Documente\db.mdb"
    5. cmd.Connection = con
    6. cmd.CommandText = "select * from liste where titel like '%" & suchtxt.Text & "%'"

    Ich bekomme es aber nicht hin nach mehreren Werten auf einmal zu suchen.
    Ich hoffe ihr könnt mir weiter helfen.
    It's not a bug, it's a feature
    Du brauchst nur deinen SELECT Befehl erweitern.

    VB.NET-Quellcode

    1. cmd.CommandText = "select * from liste where titel like '%" & suchtxt.Text & "%' AND Telefonnummer LIKE '%" & TelefonSucheTxt.Text % "%'"


    So liest der Reader nur Datensätze wo im Titel der Suchbegriff aus suchtxt.Text drinnen steht UND die Telefonnummer den Text aus TelefonSucheTxt.Text enthält.

    Ich würde dir aber eher dazu raten die komplette Datenbank einzulesen und danach zu suchen. Dann musst du nicht immer auf die Datenbank zugreifen.
    Thema typisiertes DataSet.

    SQL-Abfrage

    1. SELECT * FROM liste WHERE name LIKE '%maier%' OR telefon LIKE '%5678%' ORDER BY name ASC


    die komplette Datenbank einzulesen
    könnte unter Umständen auf die Performance gehen.
    Ist immer so eine Sache.

    Bei großen Datenbanken lese ich gerne nur die Datensätze, die ich tatsächlich brauche.
    Und auch nur die benötigten Felder.

    Ein SELECT in der Datenbank ist sehr viel performanter als das Einlesen der ganzen Daten.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --