powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Типиз. Dataset и AutoIncrement
15 сообщений из 15, страница 1 из 1
Типиз. Dataset и AutoIncrement
    #33003754
kulpavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер!

Никак не получается забрать из базы данных MSSQL значение столбца идентити в столбец типизированного датасета, определяющего такую же таблицу что и на сервере (тоже с автоинкрементом), связанного с датагридом..

помогите..
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33004184
sergei.knyazev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если делать таблицу в dataset через функцию адаптера в дизайнере «Generate Dataset...» то никаких проблем не возникало у меня никогда. Вы создавали DataTable таблицу таким способом?
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33004610
kulpavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да именно в дизайнере создавал ...и датаадптеры и датасет..
в событии OnUpdatedRow (я посмотрел ) приходит новый ид (подставляется) ..но как занести этот ид в существующий row (который собственно заносим в бд)

Updds = ds.GetChanges();
da.Update(Updds );
ds.Merge(Updds );
ds.AcceptChanges();

ряд удваивается (что и следовало ожидать - ид то новый ), если не делать Merge() с новым ид(из базы) в датасет не попадает (что тоже правильно ((:)..
вот и вопрос как обновить ид ...
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33005081
sergei.knyazev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По идее датасет может сам себе ставить всё что хочет, но при Insert в команде которую нагенерил адаптер не должно быть Id вообще, а в select который идёт после Insert into должен стоять в WHERE (Id = @@IDENTITY). Поэтому в датасет и заливается то что на самом деле думет сервак, а на домыслы датасета ему должно быть плевать.
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33005128
kulpavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все так и есть...
вопрос как обновить ид датасета значением ид из базы...
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33005470
sergei.knyazev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если Вы поставили галочку Refresh the DataSet при создании адаптера в Advanced Options... то всё должно само собой обновиться, потому что тогда метод Update() положит то что станет в базе обратно в строчку. Для этого сначала делается INSERT INTO, а потом SELECT.
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33005553
kulpavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да я поставил галочку..новый ид приходит..
при мерж эта строчка добавляется как новая, а не изменяется ид у существующей...
как сделать чтобы менялся ид у существующей ?
если не делать мерж ничего не добавляется и не изменяется..
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33005593
sergei.knyazev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что если просто сделать da.Update(ds)?
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33006189
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте не результат GetChanges() , а массив строк полученный при помощи метода DataTable.Select

Например:
Код: plaintext
1.
2.
3.
4.
...
System.Data.DataRow[] rows = myTypedDataSet.myDataTable.Select(null,null, DataViewRowState.Added);
if (rows.Length > 0) da.Update(rows);
...

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33006306
Фотография Sam Andrews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще вариант: завести новое ключевое поле в датасете, инкремент...
в результате все апдейты будут по этому полю...

с уважением...
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33006315
sergei.knyazev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, нет. Всё должно по дефолту работать. Sa прав. Update нужно делать строчкам и всё.
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33018172
kulpavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну может и строчками.. ((:
понял что было не так в моей моделт обновления..надо было передавать сам датасет - тада он и обновляет на новые ид..а если передавать GetChanges(), то она обновляет ид, но только в этом датасете, а не базовом..соотвественно мерж надо вручную делать ((:
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Типиз. Dataset и AutoIncrement
    #33677595
sergei.knyazevЕсли Вы поставили галочку Refresh the DataSet при создании адаптера в Advanced Options... то всё должно само собой обновиться, потому что тогда метод Update() положит то что станет в базе обратно в строчку. Для этого сначала делается INSERT INTO, а потом SELECT.

Столкнулся с проблемой автора топика, только для аксесовской базы.
И тут оказалось что галочку поставить невозможно - поле заблокировано!

И что теперь, insert писать руками? Нафиг тогда нужен этот типизированный датасет!

Ето-нить может сталкивался с такой проблемой?
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33678024
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мученник.net
Ето-нить может сталкивался с такой проблемой?

ответ здесь
http://www.sql.ru/forum/actualthread.aspx?tid=271022

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Типиз. Dataset и AutoIncrement
    #33680704
Как оказалось, не все так просто - добавление в типиз. набор
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Типиз. Dataset и AutoIncrement
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]