C# Variable in SQL Anweisung für Datenbank

PSP_GIGA

Cadet 3rd Year
Registriert
Jan. 2011
Beiträge
57
Hallo Leute,

ich hab in meinem Programm eine Zeile, mit der ich einen Wert in eine Datenbank einfügen möchte. Es klappt auch soweit nur ich möchte den Wert in eine Textbox eingeben und dann einfügen.

Die textbox ist als sMitarbeiter deklariert also als string.

Code:
string strSQL = "Insert into Mitarbeiter ([Mitarbeiter]) VALUES ('sMitarbeiter')";

wie bekomme ich es hin, dass er es als Variable erkennt und nicht als normalen string?

Weil jetzt übergibt es sMitarbeiter, da ich es auch in ' ' geschreiben habe.

Ich hoffe ihr könnt mir weiterhelfen :)
 
Benutz n StringBuilder, oder einfach "blah" + variable + "blubb" (wobei man das escapen nicht vergessen sollte bei SQL). Aber... wenn du sowas nicht weisst, solltest du echt nochmals über die Grundlagen.
 
Zuletzt bearbeitet:
string strSQL = string.Format("Insert into Mitarbeiter ([Mitarbeiter]) VALUES ('{0}')", textBoxMitarbeiter.Text);

Das ist die sauberste Lösung. Wenn du noch mehr Parameter hast einfach Platzhalter mit {1}, {2}, usw. belegen.

Am billigsten geht es so:

string strSQL = "Insert into Mitarbeiter ([Mitarbeiter]) VALUES ('" + textBox.Text +"')";
 
So zum Beispiel - dann bist du auch gegen SQL Injections geschützt:

try
{
StringBuilder sql = new StringBuilder();
sql.Append("Insert into Mitarbeiter ([Mitarbeiter]) VALUES (@smitarbeiter) ");

MsSqlParamCollection _params = new MsSqlParamCollection();
_params.AddParam("smitarbeiter", sMitarbeiter);

using (MSSqlQuery q = new MSSqlQuery(sql.ToString(), _params, dbConnection, true))
q.ExecuteNonQuery();
}
catch (Exception f)
{
MessageBox.Show(f.ToString(), "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
}

Gruß

Capfu

PS: Sascha L: string strSQL = "Insert into Mitarbeiter ([Mitarbeiter]) VALUES ('" + textBox.Text +"')";

Davon bitte die Finger lassen !!! - Ich sage nur Thema SQL Injection
 
Zuletzt bearbeitet:
Sein eigentliches Problem hat nichts mit SQL zu tun und daher ist meine Antwort völlig korrekt. Er will wissen, wie man einen vorhandenen String mit einem zweiten String verknüpft. Dafür nimmt man wie in diesem Beispiel string.Format().

Das brauch er ja auch später sicherlich noch in tausendenen anderen Anwendungen wieder.

Dass er nun in diesem konkreten Fall dabei ein SQL-Query zusammen bauen will, ist ein anderes Thema und natürlich muss er da noch einiges beachten. U.a. würde ich auch alleine die Text-Eingabe schon vorab überprüfen, dass dort erst gar nichts Unsinniges, also nicht gewünschte Werte, drin stehen.
 
Zurück
Oben