2017-02-20 3 views
2

ich eine C# Winform app Hexe haben verwendet die folgende SQL-Code einfügen, aber aus irgendeinem Grund, den ich eine Fehlermeldung erhalten, ist die Aussage:Fehlerdaten in SQL Einfügen

private void button1_Click(object sender, EventArgs e) 
     { 
      if (desemp.Text != "" && valu.Text != "" && fs.Text != "" && sel.Text != "" && desc.Text != "" && ench.Text != "" && comp.Text != "") 
      { 
       cmd = new SqlCommand("insert into dbo.vidros(desempenho,valu,fs,sel,desc,enchimento,compo) values (@desemp,@valu,@fs,@sel,@desc,@ench,@comp)", con); 
       con.Open(); 
       cmd.Parameters.AddWithValue("@desemp", desemp.Text); 
       cmd.Parameters.AddWithValue("@valu", valu.Text); 
       cmd.Parameters.AddWithValue("@fs", fs.Text); 
       cmd.Parameters.AddWithValue("@sel", sel.Text); 
       cmd.Parameters.AddWithValue("@desc", desc.Text); 
       cmd.Parameters.AddWithValue("@ench", ench.Text); 
       cmd.Parameters.AddWithValue("@comp", comp.Text); 
       cmd.ExecuteNonQuery(); 
       con.Close(); 
       MessageBox.Show("sucess!"); 
      } 
      else 
      { 
       MessageBox.Show("Error!"); 
      } 
     } 

Der Fehler i erhalten: falsche Syntax in der Nähe von das Wort "desc". Ich habe stundenlang versucht, dieses herauszufinden und kann den Fehler nicht finden.

Kann jemand helfen?

Vielen Dank im Voraus

+4

'desc' ist ein reserviertes Wort, für die Bestellung. –

+0

Liegt das daran, dass 'desc' ein Schlüsselwort ist? –

+1

'desc' ist in der Tat ein Schlüsselwort. Verwenden Sie '[desc]' (mit eckigen Klammern), wenn Sie wirklich daran festhalten wollen, obwohl ich es nicht empfehlen würde. – Jens

Antwort

0

Wenn Sie diesen SQL-Code in Ihr Verwaltungsstudio kopieren und einfügen, sehen Sie, dass "desc" hervorgehoben ist, was bedeutet, dass es ein reserviertes Schlüsselwort ist, das für die Bestellung von Abfragen verwendet wird.

Ändern Sie einfach desc zu [desc] und es sollte funktionieren.

2
SqlParameter[] Prms = new SqlParameter[] { 
      new SqlParameter("desemp", desemp.Text), 
      new SqlParameter("valu", valu.Text), 
      new SqlParameter("fs", fs.Text), 
      new SqlParameter("sel", sel.Text), 
      new SqlParameter("desc", desc.Text), 
      new SqlParameter("ench", ench.Text), 
      new SqlParameter("comp", comp.Text), 
     }; 


cmd.Parameters.AddRange(Prms); 

Überprüfen Sie die Zellnamen und sie wie folgt verwenden.

+0

Dies ist nur eine andere Möglichkeit, Parameter hinzuzufügen. Diese Antwort behebt den Fehler nicht. – LarsTech

0

auf eine Schaltfläche klicken Ereignis, mit Textboxen kann wie folgt aussehen:

using System.Data.SqlClient; 

protected void Button1_Click(object sender, EventArgs e) 
{ 
SqlConnection con = new SqlConnection(System.Configuration. 
ConfigurationManager.ConnectionStrings["con"].ToString()); 
    try 
    { 
     string query = "insert into UserDetail(Name,Address) 
     values('" + txtName.Text + "','" + txtAddress.Text + "');"; 
     SqlDataAdapter da = new SqlDataAdapter(query, con); 
     con.Open(); 
     da.SelectCommand.ExecuteNonQuery(); 
     con.Close(); 
     lblmessage.Text = "Data saved successfully."; 
    } 
    catch 
    { 
     con.Close(); 
     lblmessage.Text = "Error while saving data."; 
    }