我有兩個mysql TABLES
- ORDER
和ORDER_DETAILS
關係是一個訂單有很多order_details。當通過循環插入時,變量已經被定義錯誤
創建訂單後,我得到最後插入的ID,我需要通過for循環插入最後插入的最後一個訂單ID的訂單詳細信息。但在這裏它是具有一個以上的訂單細節時
@order_id已經被定義
的消息。如果它是一個訂單的細節,它的作品。
如何在此處定義此訂單ID?這是一個錯誤的方式?這裏是我的代碼:
private void button2_Click(object sender, EventArgs e)
{
try
{
DateTime localDate = DateTime.Now;
MydbConnection db = new MydbConnection();
MySqlConnection con = db.connection();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = "insert into orders (created) values(@localDate)";
cmd.Parameters.AddWithValue("@localDate", localDate);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
long lastId = cmd.LastInsertedId;//Last inserted id
for (int i = 0; i < listView3.Items.Count; i++)
{
cmd.CommandText = "insert into order_details (order_id,product_id,qty) values(@order_id,@product_id,@qty)";
cmd.Parameters.AddWithValue("@order_id", lastId);
cmd.Parameters.AddWithValue("@product_id", 1);
cmd.Parameters.AddWithValue("@qty", listView3.Items[i].SubItems[1]);
cmd.ExecuteNonQuery();
}
}
catch (Exception es) {
MessageBox.Show("Order not saved! "+es.Message);
}
}
嘗試在循環內創建一個新的命令對象。 –
把這個'cmd = new MySqlCommand();'也放在循環中。 –
我也是這麼做的。:( – user3722956