TableAdapter FillBy Abfrage mit Parameter funktioniert nicht mit dem LIKE-operator
Schlug mit meinem Kopf gegen eine Wand hier. Ich habe eine Abfrage, die wie folgt aussieht.
SELECT FirstName, LastName, Address
FROM Members
WHERE FirstName LIKE 'JOE%'
Funktioniert absolut gut im query-Assistenten und die DataTablePreview Daten-Fenster. Jedoch, wenn ich dies tun.
SELECT FirstName, LastName, Address
FROM Members
WHERE FirstName LIKE ?
Ich bekomme nichts wenn ich die fillby-Methode. Wenn ich die GERNE =.
SELECT FirstName, LastName, Address
FROM Members
WHERE FirstName = ?
Alles Super funktioniert. Ich brauche, um GERNE arbeiten, obwohl, so kann ich die wildcard-Suche.
Ich bin mit dem SQL server OLE db-verbindungen, wenn das bedeutet nichts.
UPDATE
Den LIKE-operator funktioniert überhaupt nicht. Wenn ich nur die swap-out = - for-LIKE. Wird nichts zurückgegeben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie konvertieren Sie Ihre Abfrage :
Wenn Sie pass % in den parameter selbst, ich denke, es interpretiert es als einen string-Wert statt einen Platzhalter und nur die selben, Vorname = 'JOE'%'
Hatte ich dieses problem. Die Abfrage arbeitete in den Abfrage-generator, und dann, wenn die Vorschau in der Tabelle adapter-es ist fehlgeschlagen.
Ich habe die SQL -
LIKE LTRIM(RTRIM(@string))
Und dann habe ich die
%
in der Zeichenfolge, die ich geschickt wurde. Die Tabelle adapter war das senden der vollständigen Zeichenkette der parameter, einschließlich Leerzeichen, auch wenn die Eingabe wurde gekürzt. Dies bedeutete, dass die Abfrage würde nie zu finden die Daten, da der RäumeKönnen Sie nicht fügen Sie die % auf das param-Feld?
Gefunden bei
- Anweisung mit dem parameter
adapter
Also, es stellt sich heraus, dass etwas in der OLE DB-Verbindung wurde abgespritzt bis. Wenn ich erstellt eine neue Verbindung und eine neue Tabelle-adapter, alles begann zu funktionieren.
BEARBEITEN
Was ich eigentlich Tat, war die Verwendung des SQL-server-adapter anstelle des SQL-server-OLEDB-adapter.
DB