SQL- Selektionsliste austauschen

05/12/2007 - 12:03 von wasting_time | Report spam
Hallo NG!

Ich habe folgendes Problem. Ich muss von einem übergebenen Where die
Felder austauschen.
Also in diesen Beispiel das Feld user.

z.B.
WHERE [user] = 'test'

Ein einfaches Replace würde ja in diesen Fall ausreichen, nur was tun
wenn in dem Textfeld auch zufàllig "user" drinstehen sollte?

Eine Suche nach den Anfang und Ende der '-Zeichen wàre der richte Weg,
nur es können ja wieder mehere '-Zeichen in dem Textfeld stehen,
theoretisch auch ein ganzer SQL.

Gibt es bereits eine Klasse die mir dieses Problem abnehmen könnte?

Für einen wenig Hilfe wàr ich sehr dankbar.

Gruß Markus
 

Lesen sie die antworten

#1 Armin Zingler
05/12/2007 - 12:14 | Warnen spam
"wasting_time" schrieb
Hallo NG!

Ich habe folgendes Problem. Ich muss von einem übergebenen Where die
Felder austauschen.
Also in diesen Beispiel das Feld user.

z.B.
WHERE [user] = 'test'

Ein einfaches Replace würde ja in diesen Fall ausreichen, nur was
tun wenn in dem Textfeld auch zufàllig "user" drinstehen sollte?

Eine Suche nach den Anfang und Ende der '-Zeichen wàre der richte
Weg, nur es können ja wieder mehere '-Zeichen in dem Textfeld
stehen, theoretisch auch ein ganzer SQL.

Gibt es bereits eine Klasse die mir dieses Problem abnehmen könnte?



Austauschen ist der falsche Ansatz. Verwende stattdessen einen String, der
noch keinen Feldnamen enthàlt. In den làsst sich auch "[user]" nachtràglich
eintragen. Bsp:

Dim sql As String = "where {0} = @1"
Dim sql2 As String

sql2 = String.Format(sql, "[user]")


Verwende anschließend die Parameters-Auflistung des OleDb/SqlCommand-Objekts
um die Parameter-Werte einzusetzen. Manuell solle das nicht gemacht werden.



Armin

Ähnliche fragen