Ich versuche, Daten in meine Datenbank mit einem DataGridView
in C# einzufügen. Allerdings, wenn ich klicken Sie auf Speichern Sie die folgende Fehlermeldung angezeigt:Was ist falsch mit meinem Einfügen Befehl
System.Data.OleDb.OleDbException was unhandled
HResult = -2147217900
Message = Syntax error in INSERT INTO statement.
Source = Microsoft Office Access Database Engine
ErrorCode = -2147217900
Hier ist der Code, den ich habe:
private void save_btn_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Stock.accdb");
con.Open();
for (int i = 0; i < dataGridView_insert.Rows.Count; i++)
{
OleDbCommand cmd = new OleDbCommand("INSERT INTO product(OV,Reference,Cod_Client,Client,Qtd,Type_product,Posicion_product,) VALUES ('" + dataGridView_insert.Rows[i].Cells["OV"].Value + "','" + dataGridView_insert.Rows[i].Cells["Reference"].Value + "','" + dataGridView_insert.Rows[i].Cells["Cod_Client"].Value + "','" + dataGridView_insert.Rows[i].Cells["Client"].Value + "','" + dataGridView_insert.Rows[i].Cells["Qtd"].Value + "','" + dataGridView_insert.Rows[i].Cells["Type_product"].Value + "','" + dataGridView_insert.Rows[i].Cells["Posicion_product"].Value + " ' ", con);
cmd.ExecuteNonQuery();
}
con.Close();
}
Was ist falsch?
was ist das ',' hier am Ende 'Type_product, Posicion_product,' 'Ich stimme, um diesen Tippfehler zu schließen – fubo
Verwenden Sie Parameter anstelle von String-Verkettung. Es macht es unmöglich zu wissen, was falsch wäre, wenn Sie nicht wissen, welche Werte eingefügt werden. Außerdem öffnet es die Tür für SQL-Injection-Angriffe. –
Aber auch ohne dies funktioniert es nicht – satbr