#c# #.net #data-binding #datagridview #tableadapter
#c# #.net #привязка данных #datagridview #tableadapter
Вопрос:
Я искал здесь и в Google это в течение последних 2 часов, и я не смог найти решение для этого!
Единственный способ, которым я могу получить, DataGridView
чтобы отразить изменения, внесенные TableAdapter.Update
, — это использовать TableAdapter.Fill
, но проблема в том, что DataGridView
прокручивается обратно к началу.
Как я могу «обновить» DGV без потери его состояния? Я знаю, что могу получить и установить состояние после заполнения, но, конечно, есть лучший способ сделать это!!
Вот мое очень простое тестовое приложение…
private Random Rand = new Random();
private void Form1_Load(object sender, EventArgs e)
{
this.MyTableAdapter.Fill(this.MyDataSet.MyTable);
}
private void button1_Click(object sender, EventArgs e)
{
string _rand = Convert.ToString(Rand.Next(1000, 5000));
this.MyTableAdapter.UpdateStatus(_rand, "111.222.333.444");
label1.Text = _rand;
}
Где MyTableAdapter.UpdateStatus
SQL = UPDATE MyTable SET status=@p1 WHERE (ip=@p2)
Все работает так, как должно, за исключением того, что DGV не обновляется без Fill
Ответ №1:
Установка ClearBeforeFill
свойства TableAdapter на False
остановит это поведение.
Ответ №2:
если вы установите для свойства ClearBeforeFill значение False, оно будет добавлять одни и те же данные снова и снова, каждый .Fill