как обновить изменения в DataGridView с помощью табличного адаптера C # SQL?

#c# #sql

#c# #sql

Вопрос:

    public void DoUpdate()
    {
        SqlConnection con = new SqlConnection(string connection);
        con.Open();
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM table",con);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        this.dataGridView1.DataSource = dt;
        this.dataGridView1.Update();
        this.dataGridView1.Refresh();
        con.Close();
    }
}
  

я использую этот метод после внесения изменений в мою Stock_table, но в таблице данных по-прежнему отображаются старые данные без изменений, я вижу только изменения, внесенные в таблицу после сброса моей программы

Комментарии:

1. Пожалуйста, ознакомьтесь Refresh с документацией по методу. Он постоянно вызывается без необходимости. В этом случае это бесполезно. Удалите его. То же самое с Update методом.

2. Насколько я понимаю, вы хотите сохранить изменения, внесенные пользователем, обратно в БД. Затем вызовите adapter.Update(dt) . Конечно, UpdateCommand свойство должно быть установлено правильно.

3. я не знал об UpdateCommand, поэтому я должен использовать так.dataGridView1.DataSource = adapter. UpdateCommand() ?

Ответ №1:

    public void DoUpdate()
    {
        SqlConnection con = new SqlConnection(string connection);
        con.Open();
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM table",con);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        this.dataGridView1.DataSource = dt;
        con.Close();
    }
}
The right way to update an datagridview 
why is this a method because if you are using another form to make the data insert in your table you only need to make a constructor with the previous form and after the insert you only call this method
Thanks for the help