2016-12-04 2 views
0

Ich versuche, einen Wert aus meiner GUI zu nehmen und es in meiner Abfrage verwenden. Wie kann ich mit C# umgehen? Ich versuche, den GUI-Wert zu verwenden, um die "CID" zu ersetzen.Mysql Query Ersetzung Zeichenfolge

string query = "SELECT firstname, lastname, quanitybought FROM customers s, beersbought a WHERE exists(SELECT 'x' FROM beersbought b WHERE b.cid = s.cid)"; 

Gibt es eine Möglichkeit, die CIDs durch den Wert zu ersetzen, den ich von meiner GUI erhalte? Zum Beispiel Wo b.GUIVALUE = s.GUIVALUE.

Antwort

1

Werfen Sie einen Blick auf String.Format(), wie man leicht, was Sie so etwas wie

string query = string.Format("SELECT firstname, lastname, quanitybought FROM customers s, beersbought a WHERE exists(SELECT 'x' FROM beersbought b WHERE {0} = {1})", bCidUIControl.Text, sCidUIControl.Text); 

Die obige dass Sie UI 2 haben wollen mit erreichen können Controls (genannt bCidUIControl und sCidUIControl), wie eine TextBox annimmt, wo die Parameterwerte eingestellt/ausgewählt sind.

Beachten Sie, dass Sie bei der Programmierung von Abfragen wie dieser sehr defensiv sein sollten, um die Möglichkeit von SQL-Injection-Angriffen zu minimieren. Obwohl die oben genannten Schritte das erreichen, was Sie erreichen möchten, sollten Sie diese Textwerte wahrscheinlich durch validierte typsichere Eigenschaften innerhalb der Klasse ersetzen.

Hoffe das hilft?