Wie man datasatz in eine SQL-server-Express-databasetabelle einfügt?

Ich versuche, einen Textfeldwert in eine databasetabelle namens site_list .

Die site_list Tabelle enthält zwei Spalten id und site_name , id auf Auto-Inkrement gesetzt

Dies ist der Code, den ich versuche und wann es ausgeführt wird, gibt es keinen Fehler, aber die data werden nicht in der Tabelle angezeigt

 SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=.\\SQLExpress;" + "User Instance=true;" + "Integrated Security=true;" + "AttachDbFilename=|DataDirectory|scraper_db.mdf;"; SqlCommand addSite = new SqlCommand("INSERT INTO site_list (site_name) " + " VALUES (@site_name)", conn); addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = textBox1.Text; conn.Open(); addSite.ExecuteNonQuery(); conn.Close(); 

Jede Hilfe wäre willkommen.

Grüße

Bearbeiten:

Dieser Code begann zu arbeiten

  string connstring = "Data Source=.\\SQLExpress;"+ "Integrated Security=true;"+ "User Instance=true;"+ "AttachDBFilename=|DataDirectory|scraper_db.mdf;"+ "Initial Catalog=scraper_db"; using (SqlConnection connection = new SqlConnection(connstring)) { connection.Open(); SqlCommand addSite = new SqlCommand("INSERT INTO site_list (site_name)"+ "VALUES (@site_name)", connection); addSite.Parameters.AddWithValue("@site_name", textBox1.Text); addSite.ExecuteNonQuery(); connection.Close(); } 

wie die Leute vorschlagen, versuchen Sie, die database auf dem server zu erstellen (es wird noch einfacher, mit Sql Management Studio umzugehen ). Sobald dies geschehen ist, versuchen Sie die folgenden (nur getestet und es funktioniert):

 using (SqlConnection conn = new SqlConnection(@"Persist Security Info=False;Integrated Security=true;Initial Catalog=myTestDb;server=(local)")) { SqlCommand addSite = new SqlCommand(@"INSERT INTO site_list (site_name) VALUES (@site_name)", conn); addSite.Parameters.AddWithValue("@site_name", "mywebsitename"); addSite.Connection.Open(); addSite.ExecuteNonQuery(); addSite.Connection.Close(); } 
 try { using (SqlConnection conn = new SqlConnection(@"Persist Security Info=False;Integrated Security=true;Initial Catalog=myTestDb;server=(local)\SQLEXPRESS;database=Inventory;Data Source=localhost\SQLEXPRESS;")) { SqlCommand addSite = new SqlCommand(@"INSERT INTO Creation (Name,Product,Quantity,Category) VALUES (@Name,@Product,@Quantity,@Category)", conn); addSite.Parameters.AddWithValue("@Name", textBox1.Text); addSite.Parameters.AddWithValue("@Product", textBox2.Text); addSite.Parameters.AddWithValue("@Quantity", textBox3.Text.ToString()); addSite.Parameters.AddWithValue("@Category", textBox4.Text); thisConnection.Open(); addSite.ExecuteNonQuery(); } } catch { thisConnection.Close(); } 

probiere das aus:

 string sql = String.Format("INSERT INTO site_list (site_name) VALUES('{0}')", myTextBox.Text); using(SqlConnection connection = new SqlConnection(myConnectionString)) { connection.open(); using(SqlCommand cmd = new SqlCommand(sql, connection)) { cmd.ExecuteNonQuery(); } } 

Viel Glück

Versuchen Sie, Ihren Textfeldwert in einer variables zu speichern. Wie in:

 @stringname = textbox1.text addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = @stringname; 

(WICHTIG! Das @ in @stringname ist nicht notwendig, sondern schützt dich vor Hackern!)

Dieser Code hat Wunder für mich gearbeitet.

Entschuldigen Sie. Die Antwort, die ich vorher gab, wird nicht funktionieren, da der variablesname, der im Einfügebefehl verwendet wird (in Ihrem Fall @site_name), den variables entsprechen muss, die in Ihrem sqlcommand verwendet werden. Wie in:

 @site_name = textbox1.text addSite.Parameters.Add("@site_name", SqlDbType.NVarChar).Value = textBox1.Text; 

Tut mir leid für die Verwirrung, die ich verursacht hätte.