Textbox als Steuerelement für Abfrage

rumsrumsrums

Grünschnabel
Hallo habe folgendes:

Windows Application erstellt in Visual Basic 8.


Habe eine Datenbank mit einer Tabelle die Personendaten enthält.

1 Windows Form mit einer ungebundenen Textbox(txt_IDNummer) nebst einem Button um die Abfrage auszuführen.

1 DatagridView
(Inhalt Dataset generiert aus SQLDataAdapter. siehe unten)

mehrere gebundene Textboxen zum schreiben in ein Dataset, welches die Tabelle in der Datenbank füllt. z.b. Name, Vorname, IDNummer


Der SQL DataAdapter hat ein Kreterium in der Abfrage (Parameter) welches sich auf die Textbox bezieht. SQL Statement wie folgt:

SELECT Name, Vorname, IDNummer, [Anwesend am]
FROM Personen
WHERE IDNummer =@txt_IDNummer

Der Code für das ClickEvent des Buttons ist folgender:

SqlDataAdapter1.SelectCommand.Parameters("@IDNummer").Value =txt_IDNummer.Text

ds_personen1.Clear()
SqlDataAdapter1.Fill(ds_personen1)

Leider muss ich die volle ID Nummer in die Parametertextbox eingeben um ein Ergebiss
angezeigt zu bekommen. Ich möchte aber z.b. nur die ersten 2 odere 3 stellen eingeben und er soll mir alle Anzeigen die mit dieser kombination z.b. 432... anfangen.

Ich benötige sicher irgendwie Platzhalter. jedoch weis ich nicht wie und wo die anzusetzen sind.

Vielen Dank für Eure Hilfe

rumsrumsrums
 
Hi,

versuchs mal so:

Anstatt IDNummer = verwendest du IDNummer LIKE

und als Platzhalter hängst du noch das Prozentzeichen an: txt_IDNummer & "%"
 
geht nicht.......... ich denke das es daran liegt das bei VB2005 die Parameter mit dem Marker @ gesetzt werden.

also @IDNummer

siehe obiger Post
es muss irgenwie so aufgebaut sein das es heißt:

WHERE IDNummer LIKE @txt_IDNummer ..............?

das Like statement funktioniert wunderbar, ich kann in die textbox z.b. eingeben 432%, dann zeigt er mir brav alle 432 er IDs an.

jedoch will ich nur 432 eingeben ohne den Platzhalter selber eingeben zu müssen.
 
Zuletzt bearbeitet:
Hi,

wenn es sich um .NET handelt, kann ich dir leider nicht weiterhelfen.

Poste dein Problem doch mal im .NET-Forum.
 
So Problem ist gelöst.

Someone-m hat geholfen.

Es liegt am Datatyp der Spalte in der Tabelle die Abgefragt werden soll.

der SQL server setzt die Voreingestellt auf Nchar. Dieser Datentyp ist dafür aber ungeeignet. Datentyp muss NVarChar sein, um es hinzubekommen.

Er war so nett und hat auch noch die passende WHERE Klausel mitgeschickt

Wie folgt im SQLDataAdpater:


WHERE (IDNummer LIKE '%' + @IDNummer + '%')

und für das Click_Event im Code:

Me.SqlDataAdapter1.SelectCommand.Parameters("@IDNummer").Value = txt_SucheIDNummer.Text


so für alle die sich auch damit rumgeärgert haben ist das wohl die Lösung.

Gruss

Sven
 
Zurück