我已经寻找它的解决方案一段时间了,我在这里看到了类似的问题,但那里的答案并没有解决我的问题。在我的情况下,我想循环遍历datagridview的行值,将其插入到MySql数据库中。datagridview中的行数将取决于用户。当我尝试输入2行或多行datagridview值并尝试将其插入到数据库时,只有第一行数据被成功插入。
以下是我的代码:
错误:参数“@num_Delivery”已经定义。我是第一次使用C#语言。欢迎任何想法和建议。
以下是我的代码:
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = SecurityMod.dbconn();
for (int i = 0; i < dgv_ctrl.Rows.Count; i++)
{
string sql = "INSERT INTO delivery(DeliveryNumber, CreationDate, Client, Product, Price, Quantity, Total) " +
"VALUES(@num_Delivery, " + "@dgv_datevalue" + ", " +
"@name_Client" + ", " +
"@name_Product" + ", " +
"@priceof_Produt" + ", " +
"@quan_Product" + ", " +
"@price_Total" + ");";
cmd.Parameters.AddWithValue("@num_Delivery", num_Delivery);
cmd.Parameters.AddWithValue("@dgv_datevalue", DateTime.Parse(dgv_ctrl.Rows[i].Cells["Creation_Date"].Value.ToString()).ToString("yyyy-MM-dd HH:mm:ss"));
cmd.Parameters.AddWithValue("@name_Client", dgv_ctrl.Rows[i].Cells["Client_name"].Value);
cmd.Parameters.AddWithValue("@name_Product", dgv_ctrl.Rows[i].Cells["Product_name"].Value);
cmd.Parameters.AddWithValue("@priceof_Produt", dgv_ctrl.Rows[i].Cells["Price_ofProduct"].Value);
cmd.Parameters.AddWithValue("@quan_Product", dgv_ctrl.Rows[i].Cells["Quantity_ofProduct"].Value);
cmd.Parameters.AddWithValue("@price_Total", dgv_ctrl.Rows[i].Cells["Total_Price"].Value);
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
错误:参数“@num_Delivery”已经定义。我是第一次使用C#语言。欢迎任何想法和建议。
cmd.Parameters.Clear();
。 - Keyur Ramoliyacmd.ExecuteNonQuery();
后使用cmd.Parameters.Clear();
吗? - Need2learn