Select Ding from Dang where Dong like Textbox

  • SQL

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Select Ding from Dang where Dong like Textbox

    Hallo liebes Forum !
    Ich weiß mal wieder nicht weiter ... :/

    Ich habe eine Access Datenbank und möchte aus VB eine SQL Abfrage starten - Das Ergebnis soll mir in einem DataGridView angezeigt werden.
    Um das ganze anzustellen nutze ich das integrierte Tool zum befüllen des DGV von VS2017RC. Im Normalfall klappt das auch wunderbar, diverse Abfragen habe ich so schon erstellt - nur jetzt hängts :(

    Wie im Titel schon erwähnt möchte ich LIKE mit einer Textbox verwenden und daran scheitert.

    SQL-Abfrage

    1. SELECT Ding, Dang, Dong FROM Tabelle1 WHERE Ding LIKE '%006%' ORDER BY ID DESC

    So funktioniert es und es werden mir alle Einträge angezeigt in denen 006 vorkommt.
    Mache ich daraus aber

    SQL-Abfrage

    1. SELECT Ding, Dang, Dong FROM Tabelle1 WHERE Ding LIKE '%'" & Textbox1.text & "'%' ORDER BY ID DESC

    und Starte mein Progrämmchen, schreibe 006 in die entsprechende Textbox, wird nichts gefunden.
    Sicherheitshalber habe ich auch schon mal Form1.Textbox1.text geschrieben, weil ich mir dachte dass durch das Tool vielleicht kein Bezug zur richtigen Textbox besteht.
    Anstatt von '% habe ich es auch mal mit '* versucht, aber dann kommt direkt beim erstellen der Abfrage im Tool "Fehler in der Where-Klausel"
    Kann mir da jemand helfen? Ich weiß nicht weiter :S

    LG
    DDD
    Bin gerade leider unterwegs, daher nur aus dem Kopf, aber vermutlich was in der Richtung:

    VB.NET-Quellcode

    1. String.Format("SELECT Ding, Dang, Dong FROM Tabelle1 WHERE Ding LIKE '%{0}%' ORDER BY ID DESC ", Textbox1.text)
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    SQL-Abfrage

    1. SELECT Ding, Dang, Dong FROM Tabelle1 WHERE Ding LIKE '%" & Textbox1.text & "%' ORDER BY ID DESC


    Zwischen den %-Zeichen und deinem " & Textbox1.Text & " darfst du die einfachen Anführungszeichen nicht schließen.

    bei dir würde das stehen:

    SQL-Abfrage

    1. SELECT Ding, Dang, Dong FROM Tabelle1 WHERE Ding LIKE '%'006'%' ORDER BY ID DESC



    die Lösung von asusdk ist natürlich eleganter - nur damit du verstehst, warum es bei dir nicht geht.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Guten Morgen !

    Danke euch für die Hilfe :)

    Leider bringt er mir bei asusdk's Variante gleich zwei Fehler.
    Beim Fertig stellen kommt der Hinweis "Fehler bei der Analyse" und nach dem ausführen bricht er ab mit "Unzulässige SQL-Anweisung; 'DELETE', 'INSERT', 'SELECT', 'PROCEDURE', oder 'UPDATE' erwartet."

    Wenn ich Acr0most's Variante nehme kommt zumindest kein Fehler, allerdings auch nichts anderes :(
    Ich habs auch sicherheitshalber noch mit Form1.TextBox.text gemacht, aber auch nichts.

    Kann das an dem Assistenten liegen ?

    LG,
    DDD
    Poste mal bitte den kompletten Code in dem du die Variante von asusdk versucht hast.
    Normalerweise passt das so.
    Vielleicht hast du noch einen Anwendungsfehler bei der ganzen Sache und das Statement ist nebensächlich.

    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Ich hab tatsächlich einen kleinen Fehler mit eingebaut ^^ jetzt meckert er auch nicht mehr beim erstellen des Codes, allerdings beim ausführen :D

    Das ist der SQL-Code im Assistenten

    SQL-Abfrage

    1. SELECT
    2. ID, AB_Nummer, Kunde, Bestellnummer, Artikelnummer, Produkt, Termin, Versanddatum
    3. FROM Auftraege
    4. WHERE AB_Nummer LIKE '%{0}%' ORDER BY ID DESC, Home.AB_suche.text

    und das für den Button zum suchen

    Quellcode

    1. Private Sub AB_suche_button_Click(sender As Object, e As EventArgs) Handles AB_suche_button.Click
    2. Me.AuftraegeTableAdapter.main_suche(Me.ProduktionsdatenbankDataSet.Auftraege)
    3. End Sub

    Wenn draufklicke kommt

    System.Data.OleDb.OleDbException: "Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben."


    Der fehlende Wert ... die Textbox wird nicht gefunden, oder ?
    Bilder
    • 1.JPG

      73,27 kB, 843×664, 111 mal angesehen
    Lass das mal mit dem Assistenten weg und schau dir das Beispiel an:

    VB.NET-Quellcode

    1. ​Dim sqlConnection1 As New SqlConnection("Your Connection String")
    2. Dim cmd As New SqlCommand
    3. Dim reader As SqlDataReader
    4. cmd.CommandText = "SELECT * FROM Customers"
    5. cmd.CommandType = CommandType.Text
    6. cmd.Connection = sqlConnection1
    7. sqlConnection1.Open()
    8. reader = cmd.ExecuteReader()
    9. ' Data is accessible through the DataReader object here.
    10. sqlConnection1.Close()

    Quelle

    Wenn du es verstehst, weißt du auch was was wo passiert und wie der Ablauf ist.
    Mit dem Assistenten habe ich persönlich noch nicht so viel gemacht.

    Wenn du das über den Assistenten machen willst, darf da nur das SQL-Statement stehen. Wie man da parametrisiert - gute Frage, die Textbox sollte da nicht mit drin stehen, weil er dann nach einer Spalte oder sonstwas mit dem Namen sucht.


    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Damit bist du aber von typisierter Programmierung zu untypisierter geswitcht.
    Der Assistent ist durchaus sehr wichtig und nützlich.

    Und auch die Fehlermeldung: Parameter nicht angegeben: Du musst der generierten Such-Methode natürlich übergeben, wonach gesucht werden soll.

    Was mich wundert ist, dass es ühaupt kompiliert hat - ich vermute Option Strict Off.

    Aber ehe ich jetzt weitermache - Frage: Bist du ühaupt dran interessiert, objektorientiert coden zu erlernen?
    Datentypen zu unterscheiden, Databinding zu verwenden, sowas?