2017-04-03 1 views
0

ich habe immer wieder überprüft, aber keine StörungenSystem.Data.SqlClient.SqlException: ‚Falsche Syntax in der Nähe von 'table_name'

private void Btn_Save_Click(object sender, EventArgs e) 
    { 

     SqlConnection c = new SqlConnection(conn); 


       c.Open(); 
       for (int i = 0; i < dgv.Rows.Count; i++) 
       { 
        query = @"INSERT INTO '" + tbpg.Text + "' VALUES (" 
         + dgv.Rows[0].Cells["Sno"].Value + ", " 
         + dgv.Rows[i].Cells["Date"].Value + "," 
         + dgv.Rows[0].Cells["Particulars"].Value + ", " 
         + dgv.Rows[0].Cells["Credit"].Value + ", " 
         + dgv.Rows[0].Cells["Debit"].Value + "," 
         + dgv.Rows[0].Cells["Balance"].Value + 
         ");"; 

       } 
     SqlCommand cmd = new SqlCommand(query,c); 
     cmd.ExecuteNonQuery(); 
+0

Sie sehen, es gibt nicht genug Informationen, um mit der Untersuchung dieses Problems zu beginnen. Alles, was ich Ihnen sagen kann, ist, dass Sie keine Verbindung zu Ihrem Tisch in der Datenbank herstellen können. vielleicht ist Ihre Verbindungszeichenfolge falsch oder Tabellennamen? – Valkyrie

+1

Je nach Datenbanksystem verwenden Sie unterschiedliche Anführungszeichen, um einen Namen zu umschließen. Zum Beispiel verwendet Sql Server die eckigen Klammern [Tabellenname], während MySql Backticks verwendet. – Steve

+0

"+ tbpg.Text +" Entfernen Sie Ihre einzelnen Qouts –

Antwort

0

Try Below-Code

query = @"INSERT INTO " + tbpg.Text + " VALUES (" 
         + dgv.Rows[0].Cells["Sno"].Value + ", " 
         + dgv.Rows[i].Cells["Date"].Value + "," 
         + dgv.Rows[0].Cells["Particulars"].Value + ", " 
         + dgv.Rows[0].Cells["Credit"].Value + ", " 
         + dgv.Rows[0].Cells["Debit"].Value + "," 
         + dgv.Rows[0].Cells["Balance"].Value + 
         ");"; 
0

finden konnte, Bei einer solchen Menge von String-Verbindungen müssen Sie den endgültigen Wert der Abfrage während des Debuggens ausgeben. Ansonsten erraten Sie im Grunde, wie es aussieht.

Ich habe einen Unterschied in dieser Zeile bemerken:

+ dgv.Rows[i].Cells["Date"].Value + "," 

Sie i verwenden, eher dann 0.

Aber im allgemeinen Anfragen über String connaction Aufbau ist keine gute Idee. Sie sollten Parametized Queries verwenden. Sonst landen Sie auf der falschen Seite dieses Witzes: https://xkcd.com/327/

Verwandte Themen