...
bindingSource.RemoveCurrent();
...
Сохранение при выходе(ADO.NET)
1) Существует DataGridView
2) У него соответственно BindingSource
3) Удаляю текущий элемент:
Код:
Теперь мне надо сделать проверку при выходе - надо ли сохранять данные или нет:
Код:
DialogResult dialogResult;
if (dsMine.Tables[tableName].GetChanges() != null)
{
dialogResult = MessageBox.Show(this, "Сохранить изменения в таблице 'Таблица'", "Mine", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
if (dialogResult == DialogResult.Yes)
{
dsMine.Tables[tableName].AcceptChanges();
}
else if (dialogResult == DialogResult.No)
{
dsMine.Tables[tableName].RejectChanges();
}
else
{
e.Cancel = true;
}
}
if (dsMine.Tables[tableName].GetChanges() != null)
{
dialogResult = MessageBox.Show(this, "Сохранить изменения в таблице 'Таблица'", "Mine", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
if (dialogResult == DialogResult.Yes)
{
dsMine.Tables[tableName].AcceptChanges();
}
else if (dialogResult == DialogResult.No)
{
dsMine.Tables[tableName].RejectChanges();
}
else
{
e.Cancel = true;
}
}
Он у меня нифига не делает, в смысле dsMine.Tables[tableName].GetChanges() = null всегда!.. Так как, видимо, то, что я удалил чо-то в BindingSource еще не значит что отразилось в таблице..
Вопросы:
1) Как удалить текущую строку DataGridView в таблице - чо-то не нашел!!
2) Как "обновить" таблицу, чтобы она соответствовала BindingSource..
3) Как проверить были ли сделаны изменения в BindingSource после последнего изменения в нем..
Удаление выделенной строки делается при помощи свойства DataGridView.SelectedRows. А чтобы обновить связь таблицы с источником, устанавливаешь DataSource в null, потом ещё раз устанавливаешь на источник.
Цитата:
устанавливаешь DataSource в null, потом ещё раз устанавливаешь на источник.
Лучше так не делать, это не совсем правильно :)
При наличии
Цитата:
2) У него соответственно BindingSource
Нужно вызвать bindingSource1.ResetBindings(false);
To ApOk
Оба варианта обновляют DataGridView, если внесены изменения в таблицу..
А я говорил про противоположную ситуацию.. поэтому все равно ничо не работает!!
Я удаляю текущую строку в DataGridView(To ЗАЗ-968М: какая разница между тем, как удаляю я и тем, как советуешь ты??), а когда проверяю dsMine.Tables[tableName].GetChanges(), она(полученная таблица) равна null..
Почему!!!!!!!!!!! В таблице же произошли изменения(через DataGridView)..