VisualBasic Datagridview

mpk

Cadet 4th Year
Registriert
Aug. 2011
Beiträge
127
Hallo Zusammen,

Ich hoffe hier kann mir jemand weiterhelfen. Und zwar habe ich ein Datagridview mit einer Datenbank verknüpft und mittels einer SQL-Abfrage füllen lassen:


(vereinfacht dargestellt)
SELECT name,tel FROM tabelle ORDER BY name​


Ziemlich Simpel gehalten eigentlich .. :)
Aber nun zum Problem:
Jetzt habe ich eine Suchfunktion eingebaut, bei der man den Namen eingeben kann und dann durch das Klicken auf einen Button mit der Variable als String in der Tabelle gesucht werden soll.
Befehl:


(vereinfacht dargestellt)
SELECT name,tel FROM tabelle WHERE name LIKE '%" & $var &"%' ORDER BY name​


Nur bekomme ich hier eine leere Rückgabe.
Sitze nun schon länger dabei und komm hier einfach nicht weiter. Aus der Hilfe von Visual Studio werde ich nicht schlauer.
Hat jemand einen Tipp ? :(
 
Was passiert denn wenn du deine Query direkt ausführst
als per PHPMYADMIN oder direkt über DBServer Manager

erhältst du dann auch eine leere tabelle?

BTW:
wenn du msaccess benutz versuch mal ein "*" anstatt dem "%"
 
Dim customerName As String = "blah"
...
Dim queryString As String = "SELECT name, tel FROM tabelle WHERE name LIKE '%" + customerName + "%' ORDER BY name"

wäre soweit korrekt.

wieso bezeichnest du das string feld egtl. mit "$var"?
programmierst du natives vb.net? dann verstößt die benennung gegen die üblichen naming conventions.
siehe: http://www.akadia.com/services/naming_conventions.html (was nicht "schlimm" ist, aber trotzdem geändert werden sollte)

wie füllst du denn das datagridview? gib mal source

...

wenn du msaccess benutz versuch mal ein "*" anstatt dem "%"

gute idee.. bin direkt von ms sql server ausgegangen. aber damit wirst du wohl richtig liegen.
 
hab mich über das $var auch schon gewundert aber es sollte dann eher schon nen compiler fehler werfen falls das der fehler is deswegen bin ich hierdrauf nicht eingegangen

das & anstatt dem + zum verketten von Strings ist in vb.net ebenfalls korrekt
 
Genau dann ist die Tabelle auch leer.

Die Abfrage zum Füllen des Datagridviews lautet wie folgt(Funktion "Fill"):
SELECT "Status", "IDNR", "Name", "NMZ", "Tel", "Raum", "Mobil" FROM "L10TOL"."DTF00P" ORDER BY "Name"

Und zum Filtern wollte ich folgendes verwenden(Funktion "FillNew"):
SELECT "Status", "IDNR", "Name", "NMZ", "Tel", "Raum", "Mobil" FROM "L10TOL"."DTF00P"
WHERE "Name" = '%"+ seekname +"%' ORDER BY "Name"


Public Class frm_telefonverzeichnis

Private Sub frm_telefonverzeichnis_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.DTF00PTableAdapter.Fill(Me.DTF00P._DTF00P)
End Sub

Private Sub clk_suchen(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_suchen.Click
Dim seekname As String = Val(txt_seekname.Text)
Me.DTF00PTableAdapter.FillNew(Me.DTF00P._DTF00P)
End Sub
End Class
 
Ich benutze ein IBM System i vllt auch noch bekannt als AS/400.

Mit dem Datenbankmanagementsystem DB2.
 
Zuletzt bearbeitet:
o.O ok dann kann ich dir auch ned helfen was da falsch is xD

was passiert denn wenn du

dim strQuery as string = "SELECT name,tel FROM tabelle ORDER BY name = " & $var

bekommst du dann nen treffer wenn der name genau so existiert?
vllt hat das IBM ding das du benutzt einfach keinen % als Wildcard Charakter

versuch mal INSPECT anstatt LIKE
hab ich grad irgendwo rausgegooglet ^^
 
Zuletzt bearbeitet:
Vielen Dank für eure Mühen schonmal.

Wenn ich INSPECT statt LIKE eingebe spuckt er mir sofort einen Fehler aus, deshalb kann es das nicht sein.

dim strQuery as string = "SELECT name,tel FROM tabelle ORDER BY name = " & $var (<-- dieser Befehl funzt leider auch nicht.)

Ich hab nachgeschaut und IBM lässt % als Wildcard Charakter zu.

Ich habe auch noch folgendes ausprobiert:
Soll der Wert aus einem Formularfeld kommen dann gilt sinngemäß:
Code: In Zwischenablage kopieren
Dim strSQL as String
strSQL = "SELECT ID, Album, Artist, Genre FROM Music WHERE Album = '" & Me.Formularfeld.Text & "'"
....
...
..


Wenn die übergebenen Werte keine Strings darstellen, dann musst du die einfachen Hochkommata weglassen, die weiterführung des Strings nach 'strAlbum' und 'Me.Formularfeld.Text' entfällt ebenfalls (& ... weglassen)​

Führte leider ebenfalls zu keinem Ergebnis.

Falls euch noch etwas einfallen sollte Bitte posten ;)
 
wtf -.-

Dim strQuery As String = "SELECT name,tel FROM tabelle ORDER BY name = '" & $var & "'"

im andern hab ich hochkommas vergessen
wenn du ncihtmal auf gleichheit prüfen dann glaub ich fast dass das problem ganz wo anders liegt am besten mal ne docu zum DBS rauskramen und die durchkauen oder mal auf stackoverflow.com dein problem schildern
 
Zurück
Oben