Как несколько строк из DataGrid поместить в таблицу в БД

Есть обработчик SellBtn_Click():

  private void SellBtn_Click(object sender, EventArgs e)
  {
      

          foreach (DataGridViewRow row in DataGridView1.Rows)
          {
              if (!row.IsNewRow)
              {
                  string storeName = row.Cells["Магазин"].Value.ToString();
                  string orderNumber = row.Cells["№ Заказа"].Value.ToString();
                  int quantity = Convert.ToInt32(row.Cells["Кол-во"].Value);
                  string paymentTerms = row.Cells["Условия оплаты"].Value.ToString();
                  string titleName = row.Cells["Издания"].Value.ToString();

                  // Создание команды для вызова хранимой процедуры
                  using (SqlCommand cmd = new SqlCommand("InsertSalesOrderV2", sqlConn))
                  {
                      cmd.CommandType = CommandType.StoredProcedure;

                      // Добавление параметров
                      cmd.Parameters.AddWithValue("@stor_name_p", storeName);
                      cmd.Parameters.AddWithValue("@orderNumber", orderNumber);
                      cmd.Parameters.AddWithValue("@qty_p", quantity);
                      cmd.Parameters.AddWithValue("@terms_p", paymentTerms);
                      cmd.Parameters.AddWithValue("@title_name_p", titleName);

                      try
                      {
                          // Выполнение команды
                          cmd.ExecuteNonQuery();
                      }
                      catch (Exception ex)
                      {
                          MessageBox.Show("Ошибка при выполнении запроса: " + ex.Message);
                      }
                  }
              }
          }



      MessageBox.Show("Данные успешно перенесены в базу данных.");
  }

Тут у меня при нажатии данные из первой строки DataGrid передаются как параметры для хранимой процедуры InsertSalesOrderV2, в которой происходит вставка в таблицу, но вставка происходит только для первой строки.

ХРАНИМАЯ ПРОЦЕДУРА:

ALTER PROCEDURE [dbo].[InsertSalesOrderV2]
    @stor_name_p VARCHAR(40),
    @orderNumber VARCHAR(8),
    @qty_p SMALLINT,
    @terms_p VARCHAR(12),
    @title_name_p VARCHAR(40)
as 
begin
INSERT INTO sales (stor_id, ord_num, ord_date, qty, payterms, title_id)
VALUES ((select top 1 stor_id
from stores
where stor_name = @stor_name_p), @orderNumber, '1993-05-24 00:00:00.000', @qty_p, @terms_p, (select top 1 title_id
                                                                                                from titles
                                                                                                where title = @title_name_p));
UPDATE titles
SET ytd_sales = ytd_sales - @qty_p
WHERE title_id = @title_name_p  
end

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