Announcement

Collapse
No announcement yet.

SQL Abfrage funzt direkt in DB aber nicht in VisualBasic-Code

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Abfrage funzt direkt in DB aber nicht in VisualBasic-Code

    Hallo,

    ich habe in VisualBasic eine SQL-Abfrage erstellt, die in einer Datenbanktabelle nach Datensätzen mittels einem Suchwort durchsucht.
    Jedoch bekomme ich dort kein Ergebnis, obwohl genau die gleiche Abfrage direkt in der Access-Datenbank funktioniert.

    Gibt es da in VisualBasic etwas bestimmtes, was ich übersehen habe?

    Hier der VisualBasic-Code:

    ' Im Editfeld txt_suche_stichwort.Text habe ich "Sub" eingegeben (natürlich ohne die beiden "-Zeichen)

    iCmd.CommandText = "SELECT * FROM KB1 "
    iCmd.CommandText += "WHERE KB1.Thema="
    iCmd.CommandText += """"
    iCmd.CommandText += "Helpdesk BBZ"
    iCmd.CommandText += """"
    iCmd.CommandText += " AND ((KB1.Titel Like "
    iCmd.CommandText += """"
    iCmd.CommandText += "*"
    iCmd.CommandText += txt_suche_stichwort.Text
    iCmd.CommandText += "*"
    iCmd.CommandText += """"
    iCmd.CommandText += ")"
    iCmd.CommandText += " OR (KB1.[Text] Like "
    iCmd.CommandText += """"
    iCmd.CommandText += "*"
    iCmd.CommandText += txt_suche_stichwort.Text
    iCmd.CommandText += "*"
    iCmd.CommandText += """"
    iCmd.CommandText += "))"

    iCmd.CommandText += " ORDER BY KB1.TitelID"

    myReader = iCmd.ExecuteReader()

    While myReader.Read()

    ...

    End While


    Und hier ist die SQL-Abfrage direkt in der Datenbank:

    SELECT *
    FROM KB1
    WHERE KB1.Thema="Helpdesk BBZ" AND KB1.[Text] Like "*Sub*" OR KB1.Titel Like "*Sub*"
    ORDER BY KB1.TitelID;

    Gruss
    Tobias

  • #2
    Probier in der Datenbank mal die selbe Klammerung wie in dem zusammengebastelten SQL in VB. AND zieht vor OR deshalb sind die beiden gezeigten SQL Versionen eigentlich nicht gleichwertig.

    Comment


    • #3
      Hallo,

      es ist schwer den zusammengebastelten String mit dem String aus der SQL-Abfrage aus der DB zu vergleichen. Mach das mal, das du in vb die beiden Strings vergleichts, ob sie ident sind. So scheint mir z.B. in "iCmd.CommandText += " ORDER BY KB1.TitelID" das ; zu fehlen.

      Machmal sind auch einige Syntax Dinge unterschiedlich, so muss ich in asp.net mit vb.net manchmal ' statt " verwenden. Geht das SQL aus der Datenbank in vb?

      Was gibt es den für eine Fehlermeldung?

      Mfg, Franz

      Comment


      • #4
        Code:
        ...
        iCmd.CommandText += " ORDER BY KB1.TitelID"
        
        debug.print iCmd.CommandText
        -> dann den generierten Code im Debugfenster anschauen (Breakpoint mit <F9> auf die executeReader() - Zeile) und im Zweifelsfall in die SQL - Ansicht einer neuen Abfrage kopieren und dort testen & den den Fehler finden

        Viel Erfolg!
        Tino

        Edit:
        diese Links += Rechts - Syntax ist wirklich Access ??
        Ich habs gleich!
        ... sagte der Programmierer.

        Comment

        Working...
        X