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

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

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

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

ряд удваивается (что и следовало ожидать - ид то новый ), если не делать Merge() с новым ид(из базы) в датасет не попадает (что тоже правильно ((:)..
вот и вопрос как обновить ид ...
...
Рейтинг: 0 / 0
08.04.2005, 14:27
    #33005081
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
По идее датасет может сам себе ставить всё что хочет, но при Insert в команде которую нагенерил адаптер не должно быть Id вообще, а в select который идёт после Insert into должен стоять в WHERE (Id = @@IDENTITY). Поэтому в датасет и заливается то что на самом деле думет сервак, а на домыслы датасета ему должно быть плевать.
...
Рейтинг: 0 / 0
08.04.2005, 14:34
    #33005128
kulpavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
все так и есть...
вопрос как обновить ид датасета значением ид из базы...
...
Рейтинг: 0 / 0
08.04.2005, 16:00
    #33005470
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
Если Вы поставили галочку Refresh the DataSet при создании адаптера в Advanced Options... то всё должно само собой обновиться, потому что тогда метод Update() положит то что станет в базе обратно в строчку. Для этого сначала делается INSERT INTO, а потом SELECT.
...
Рейтинг: 0 / 0
08.04.2005, 16:27
    #33005553
kulpavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
да я поставил галочку..новый ид приходит..
при мерж эта строчка добавляется как новая, а не изменяется ид у существующей...
как сделать чтобы менялся ид у существующей ?
если не делать мерж ничего не добавляется и не изменяется..
...
Рейтинг: 0 / 0
08.04.2005, 16:46
    #33005593
sergei.knyazev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
А что если просто сделать da.Update(ds)?
...
Рейтинг: 0 / 0
09.04.2005, 00:45
    #33006189
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
Используйте не результат 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
09.04.2005, 11:44
    #33006306
Sam Andrews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Типиз. Dataset и AutoIncrement
еще вариант: завести новое ключевое поле в датасете, инкремент...
в результате все апдейты будут по этому полю...

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

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

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

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

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

Код: plaintext
 uid  =  S a

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


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