Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сохранение при выходе(ADO.NET)

263
04 декабря 2006 года
koltaviy
816 / / 16.12.2004
Вопрос в следующем:
1) Существует DataGridView
2) У него соответственно BindingSource
3) Удаляю текущий элемент:
 
Код:
...
bindingSource.RemoveCurrent();
...

Теперь мне надо сделать проверку при выходе - надо ли сохранять данные или нет:
Код:
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;
                }
            }

Он у меня нифига не делает, в смысле dsMine.Tables[tableName].GetChanges() = null всегда!.. Так как, видимо, то, что я удалил чо-то в BindingSource еще не значит что отразилось в таблице..
Вопросы:
1) Как удалить текущую строку DataGridView в таблице - чо-то не нашел!!
2) Как "обновить" таблицу, чтобы она соответствовала BindingSource..
3) Как проверить были ли сделаны изменения в BindingSource после последнего изменения в нем..
273
06 декабря 2006 года
3A3-968M
1.2K / / 22.12.2005
Удаление выделенной строки делается при помощи свойства DataGridView.SelectedRows. А чтобы обновить связь таблицы с источником, устанавливаешь DataSource в null, потом ещё раз устанавливаешь на источник.
713
06 декабря 2006 года
Ap0k
360 / / 13.03.2006
Цитата:
устанавливаешь DataSource в null, потом ещё раз устанавливаешь на источник.


Лучше так не делать, это не совсем правильно :)
При наличии

Цитата:
2) У него соответственно BindingSource


Нужно вызвать bindingSource1.ResetBindings(false);

263
06 декабря 2006 года
koltaviy
816 / / 16.12.2004
To ЗАЗ-968М
To ApOk
Оба варианта обновляют DataGridView, если внесены изменения в таблицу..
А я говорил про противоположную ситуацию.. поэтому все равно ничо не работает!!
Я удаляю текущую строку в DataGridView(To ЗАЗ-968М: какая разница между тем, как удаляю я и тем, как советуешь ты??), а когда проверяю dsMine.Tables[tableName].GetChanges(), она(полученная таблица) равна null..
Почему!!!!!!!!!!! В таблице же произошли изменения(через DataGridView)..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог