Я разрабатываю приложение для точек продаж в WPF С#, где у меня есть сетка данных, в которую пользователь добавляет список товаров, которые нужно приобрести. Проблема в том, что после добавления этих элементов в сетку данных SalesRegister я не могу вставить эти элементы в базу данных. Я искал в Интернете решения, но те, которые я нашел, - это решения для WinForms DataGridView. Я хочу иметь возможность перебирать список элементов и вставлять их в базу данных. Вот пример моего кода и скриншот интерфейса.

Код показан ниже:
for (int i = 0; i < dgSalesRegister.Items.Count; i++)
{
using (SqlConnection cs = new SqlConnection(conn))
{
SqlCommand cmd = new SqlCommand("insert into SalesProduct(item_name,qty,price,total)values(@itmName,@qty,@price,@total)", cs);
cmd.Parameters.AddWithValue("@itmName", dgSalesRegister.Rows[i].cells[2].value);
cmd.Parameters.AddWithValue("@qty", dgSalesRegister.Rows[i].cells[3].value);
cmd.Parameters.AddWithValue("@price", dgSalesRegister.Rows[i].cells[4].value);
cmd.Parameters.AddWithValue("@total", dgSalesRegister.Rows[i].cells[5].value);
cs.Open();
int a = cmd.ExecuteNonQuery();
if (a > 0)
{
MessageBox.Show("You have successfully added a new item", "Information", MessageBoxButton.OK, MessageBoxImage.Information);
}
else
{
MessageBox.Show("Item addition failed!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
Clear();
}
}
Этот код работает для WinForms DataGridView, но мне нужна помощь для WPF DataGrid.
Для вас может быть немного поздно, НО вы должны использовать MVVM. Привяжите наблюдаемую коллекцию<SalesItemVM> к источнику элементов сетки данных. SalesItemVM, являющаяся моделью представления, содержит данные для каждого элемента. Чтобы зафиксировать базу данных, вы работаете с этой коллекцией. Работайте с данными напрямую, а не с объектами пользовательского интерфейса, чтобы найти содержащиеся в них данные.
Спасибо за быстрый ответ. Мне удалось использовать этот код, но проблема в том, что он будет вставлять только значения первой строки. Я не знаю, как вставить все добавленные строки. foreach (SalesRegister s в dgSalesRegister.Items) { using (SqlConnection cs = new SqlConnection(conn)) { cs.Open(); cmd.Parameters.AddWithValue("@itmName", s.ItemName); cmd.Parameters.AddWithValue("@qty", s.Qty);
@ChijiokeChinedu Не могли бы вы обновить свой вопрос с кодом, который вы используете сейчас (тот, который вставляет только первую строку)?





Возможный дубликат Как получить все строки из DataGrid в WPF