#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