2016-05-13 3 views
0

Ich bin neu bei der Verwendung von sqlserver, ich habe versucht, ausgewählte Wert einer Combobox in die Tabelle einzufügen. Mein Code sieht wie folgt aus:C# Combobox-Daten über sqlcommand einfügen

SqlConnection con = new SqlConnection("connection string here"); 
... 

con.Open(); 
SqlCommand cmd = new SqlCommand(@"INSERT INTO Accounts 
           (server) 
           VALUES ('" + comboBox1.SelectedItem.ToString() + "'", con); 

cmd.ExecuteNonQuery(); 
con.Close(); 
MessageBox.Show("Data inserted."); 

Ich erhalte Fehlermeldung sagend: enter image description here

OCE ist ein Artikel aus dem comboBox1 btw. Es funktioniert gut, wenn ich textBox.Text und so, aber was ist hier falsch? Danke fürs Lesen! :)

Antwort

2

Sie fehlen ) in Abfrage VALUES():

SqlCommand cmd = new SqlCommand(@"INSERT INTO Accounts 
           (server) 
           VALUES ('" + comboBox1.SelectedItem.ToString() + "')", con); 

aber ich rate Ihnen, Parameter zu verwenden, SQL-Injektionen zu vermeiden, wie folgt aus:

SqlCommand cmd = new SqlCommand(@"INSERT INTO Accounts (server) VALUES (@server)", con); 
cmd.Parameters.AddWithValue("@server", comboBox1.SelectedItem.ToString()); 
cmd.ExecuteNonQuery(); 
+0

Guter Ort :) +1 Vor allem für SQL Injection Schwachstelle - eines meiner Lieblingshasen –

+0

@GeoffJames Danke! –

+0

Vielen Dank für Ihre Antwort! Es tut mir sogar leid, dass ich so eine dumme Frage gestellt habe. Danke auch für deinen Rat! Einen schönen Tag noch :) –