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


Автор: Redsweet 1.4.2009, 16:15
Здравствуйте! Помогите пожалуйста!

У меня возникла такая проблема: Я создала таблицу базы данных в MS SQL server 2000, в таблице есть ключеве поле ID. В свойствах этого поля установленны параметры Identity (1,1). При заполнении таблице в самом SQL Server-е поле id автоматически заполняется неповторяемым значением. Но, когда я подключаю эту таблицу к dataGridView (Visual Studio 2008) и пытаюсь занести данные в следующую строку, в самом dataGridView, то поле id становится равным -1 (-2, -3 и т.д.). 
При нажатии на кнопке для сохранения введенных данных в БД, введенная мною строка отчищается,  поле ID принимает заначение которое еще не повторялось, т.е. -1 меняется на пример на 5 (как и положено!).

Почему так происходит? Как настроить это поле в dataGridView что бы не было этих отрицательных значений и все работало как в SQL Server???

Огромное спасибо заранее!!!

Автор: Idsa 1.4.2009, 16:18
Покажите код, в котором Вы считываете информацию из БД в DataSet и баиндите к DataGridView.

Автор: Redsweet 1.4.2009, 16:38
Цитата(Idsa @ 1.4.2009,  19:18)
Покажите код, в котором Вы считываете информацию из БД в DataSet и баиндите к DataGridView.

Ммм. Вообще, я делаю это не кодом, а в ручную. Создаю на форме dataGridView, появляется белое окошечко dataGrid Tasks . В раскрывающемся списке ChooseDataSource выбираю Add Project dataSource. Далее по ходу мастера выбираю БД и таблицу которую хочу увидеть в dataGridView. все. После нажития на f5 вижу таблицу с записями которые ввела еще в SQL Server . Сдесь то и начинаются проблемы при обавлении следующей записи в самом dataGridView.

Может все-таки я не правильно связываю?

Автор: Idsa 1.4.2009, 17:14
Redsweet, странно все это... Может, дизайнер гонит. У Вас какая студия?
По идее в таблице, которую Вы баиндите к DataGridView, для колонки id (вероятно, table.Columns[0]) дизайнер должен был выставить AutoIncrement = true, AutoIncrementSeed = 1, AutoIncrement = 1. Посмотрите, чему эти значения равны у Вас.

Автор: Redsweet 1.4.2009, 18:14
У меня Visual Studio 2008 pro
Где посмотреть эти значения 
Цитата(Idsa @  1.4.2009,  20:14 Найти цитируемый пост)
для колонки id (вероятно, table.Columns[0]) дизайнер должен был выставить AutoIncrement = true, AutoIncrementSeed = 1, AutoIncrement = 1
 я не знаю.. 

Автор: Redsweet 1.4.2009, 18:34
Ааа.. Нашла!

У меня эти значения были:

AutoIncrement = true, AutoIncrementSeed = -1, AutoIncrement = -1

Заменила на 1 и все сразу заработало!

Idsa, спасибо!

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