c# winforms одновременно вставить в базу данных несколько запись

десткоп приложение для склада, из datagridview сделал корзину покупок, тоесть из базу данных продуктов добавляю в корзину продукт, после через цикл вставляю эти данные в базу данных. нужно для всех записей сделать один ID, тоесть пытаюсь сделать InvoiceID. 10 товаров вставляю в базу - для всех этих товаров один InvoiceID.

    public ExportProductView()
    {
        InitializeComponent();
        LoadAllProductList();
        //  dt.Columns.Add("id");
        dt.Columns.Add("name");
        dt.Columns.Add("qty");
        dt.Columns.Add("price");
        dt.Columns.Add("category");
        dt.Columns.Add("company");
        dt.Columns.Add("otdel");
        dt.Columns.Add("date");
    }

 private void button2Save_Click(object sender, EventArgs e)
    {
        try
        {
           var Connect = ConfigurationManager.ConnectionStrings["MysqlConnection"].ConnectionString;
            MySqlConnection connection = new MySqlConnection(Connect);
        using (var command = new MySqlCommand())
        {
            connection.Open();
            command.Connection = connection; 

                        foreach (DataGridViewRow row in dataGridView2.Rows)
                        {
                    command.CommandText = @"insert into export values(@name, @qty, @price, @category, @company, @otdel)";
                    command.Parameters.AddWithValue("@name", row.Cells["name"].Value ?? DBNull.Value);
                    command.Parameters.AddWithValue("@qty", row.Cells["qty"].Value ?? DBNull.Value);
                    command.Parameters.AddWithValue("@price", row.Cells["price"].Value ?? DBNull.Value);
                    command.Parameters.AddWithValue("@category", row.Cells["category"].Value ?? DBNull.Value);
                    command.Parameters.AddWithValue("@company", row.Cells["company"].Value ?? DBNull.Value);
                    command.Parameters.AddWithValue("@otdel", row.Cells["otdel"].Value ?? DBNull.Value);
                      command.Parameters.AddWithValue("@date", row.Cells["date"].Value ?? DBNull.Value);
                   
                    command.ExecuteNonQuery();
                    command.Parameters.Clear();
                    LabelInfo.Text = "Successfuly saved!";
                }
        }
        
        }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
    }

добавление в корзину товаров

       private void btnAddToOrderList_Click(object sender, EventArgs e)
    {

        row = dt.NewRow();
      //  row["id"] = IdTextbox.Text.ToString();
        row["name"] = NameTextbox.Text.ToString();
        row["qty"] = QtyTextbox.Text.ToString();
        row["price"] = PriceTextbox.Text.ToString();
        row["category"] = CategoryTextbox.Text.ToString();
        row["company"] = CompanyTextbox.Text.ToString();
        row["otdel"] = OtdelTextbox.Text.ToString();
        row["date"] = dateTimePicker1.Text;
        dt.Rows.Add(row);
        dataGridView2.DataSource = dt;
     //   IdTextbox.Text = "";
        NameTextbox.Text ="";
        QtyTextbox.Text = "";
        PriceTextbox.Text = "";
        CategoryTextbox.Text = "";
        CompanyTextbox.Text = "";
        OtdelTextbox.Text = "";
        dateTimePicker1.Text = "";

    }

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Danila

я хотел бы сделать корзинку из datagridview. туда переносить товары , и добавлять в таблицу заказов под одним ID-номером, чтоб понят какие

Да, всё верно, вам следует добавить две таблицы:

  1. Orders (id, user_id, etc... ) - тут содержится информация о заказе, не о товарах.
  2. OrderItems (id, order_id, item_id), где id - идентификатор записи, order_id - идентификатор заказа, а item_id - идентификатор товара в заказе.

товары были проданный в определенное время конкретному покупателю.

Здесь вам стоит добавить столбец с datetime в таблицу Orders.

еще проблема в том , нужно минусовать из продуктов проданные товары

Здесь вам нужно сформировать запрос DELETE к таблице вашей БД, в которой вы хотите удалить записи.

→ Ссылка