Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Несоответствие IDENTITY в DataGrid и в БД


Автор: Roo 30.3.2006, 11:24
БД на MS SQL Server. DataGrid настроен на типизированный DataSet. Проблема такая: если на сервере для новой записи определённое значение IDENTITY заблокировано (например, последняя запись имеет ID = 100, а значение 101 заблокировано), то на DataGrid'е это никак не отражается. Т.е. если вставлять новую запись через DataGrid, ID выставится = 101, что не пройдёт в БД. Как быть?

Автор: arilou 30.3.2006, 17:18
Roo, а ты думал! Ведь датасет - это отсоединенный набор данных, откуда ж ему знать о том, что происходит в таблице.

Цитата(Roo @ 30.3.2006, 11:24 Найти цитируемый пост)
что не пройдёт в БД

Ты уверен что не пройет? Ведь запись будет помечена как New, что при обновлении вызовет оператор INSERT, а значение AutoIncrement поля не будет принято во внимание.

Автор: Roo 30.3.2006, 18:31
Да, ясно, в чём дело. ДатаГрид полностью отображает все столбцы, в том числе и столбец ID., и выставляет его равным предыдущему+1. Т.е. надо чтоб этот столбец не отображался. А как это сделать? С помощью TableStyles не выходит...

Автор: arilou 30.3.2006, 18:36
А этот вопрос ты уже задал в параллельной ветке smile Я ответа не знаю

Автор: Roo 30.3.2006, 19:31
Цитата(arilou @ 30.3.2006, 18:36)
А этот вопрос ты уже задал в параллельной ветке smile Я ответа не знаю

Точно =)) Именно поэтому здесь и задал, что там никто не отвечает...

Автор: arilou 31.3.2006, 11:11
Roo, если кто знает, то обязательно ответит. кросспостить вопрос не нужно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)