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 шт):
я хотел бы сделать корзинку из datagridview. туда переносить товары , и добавлять в таблицу заказов под одним ID-номером, чтоб понят какие
Да, всё верно, вам следует добавить две таблицы:
- Orders (id, user_id, etc... ) - тут содержится информация о заказе, не о товарах.
- OrderItems (id, order_id, item_id), где id - идентификатор записи, order_id - идентификатор заказа, а item_id - идентификатор товара в заказе.
товары были проданный в определенное время конкретному покупателю.
Здесь вам стоит добавить столбец с datetime в таблицу Orders.
еще проблема в том , нужно минусовать из продуктов проданные товары
Здесь вам нужно сформировать запрос DELETE к таблице вашей БД, в которой вы хотите удалить записи.
