Как обновлять БД при изменении DataGrid (WPF) используя SqlConnection

Имеется программа на C# WPF и БД на 3 связанных таблицы в MS SQL Server. Для привязки данных используется класс SqlConnection и т.д. (ниже будут код и скриншоты). Вывод данных работает без проблем:

public partial class MainWindow : Window
{
    private readonly SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["productsdb"].ConnectionString);
    private DataTable dt;
    public MainWindow()
    {
        InitializeComponent();
        DbConnection("products");
    }

    private void DbConnection(string table)
    {
        try
        {
            con.Open();
            SqlCommand cmd = new SqlCommand($"SELECT * FROM {table} ORDER BY id", con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            dt = new DataTable(table);
            da.Fill(dt);

            prodGrid.ItemsSource = dt.DefaultView;
            // tableName.Content = table[0].ToString().ToUpper() + table.Substring(1);
        }
        catch (Exception ex)
        {
            MessageBox.Show("Исключение: ", ex.Message);
        }
        finally
        {
            con.Close();
        }
    }

Результат работы метода для всех таблиц: введите сюда описание изображения

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

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

Требуемая задача заключается в корректном добавлении, редактировании и удалении строк в таблице непосредственно через DataGrid, но я никак не могу найти рабочее решение. Единственное, что есть, это вот такой кусок кода:

con.Open();
            string table = tableName.Content.ToString().ToLower();

            SqlCommand cmd = new SqlCommand($"SELECT * FROM {table} ORDER BY id", con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Update(dt);

            prodGrid.ItemsSource = dt.DefaultView;

При попытке добавить значение в колонку и сохранить изменение, выскакивает исключение: "Для элемента Update требуется действительный InsertCommand(UpdateCommand, DeleteCommand) при передаче коллекции DataRow с новыми строками."


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