|
|
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Никак не получается забрать из базы данных MSSQL значение столбца идентити в столбец типизированного датасета, определяющего такую же таблицу что и на сервере (тоже с автоинкрементом), связанного с датагридом.. помогите.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2005, 22:09 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
Если делать таблицу в dataset через функцию адаптера в дизайнере «Generate Dataset...» то никаких проблем не возникало у меня никогда. Вы создавали DataTable таблицу таким способом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 10:46 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
да именно в дизайнере создавал ...и датаадптеры и датасет.. в событии OnUpdatedRow (я посмотрел ) приходит новый ид (подставляется) ..но как занести этот ид в существующий row (который собственно заносим в бд) Updds = ds.GetChanges(); da.Update(Updds ); ds.Merge(Updds ); ds.AcceptChanges(); ряд удваивается (что и следовало ожидать - ид то новый ), если не делать Merge() с новым ид(из базы) в датасет не попадает (что тоже правильно ((:).. вот и вопрос как обновить ид ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 12:45 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
По идее датасет может сам себе ставить всё что хочет, но при Insert в команде которую нагенерил адаптер не должно быть Id вообще, а в select который идёт после Insert into должен стоять в WHERE (Id = @@IDENTITY). Поэтому в датасет и заливается то что на самом деле думет сервак, а на домыслы датасета ему должно быть плевать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:27 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
все так и есть... вопрос как обновить ид датасета значением ид из базы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 14:34 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
Если Вы поставили галочку Refresh the DataSet при создании адаптера в Advanced Options... то всё должно само собой обновиться, потому что тогда метод Update() положит то что станет в базе обратно в строчку. Для этого сначала делается INSERT INTO, а потом SELECT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 16:00 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
да я поставил галочку..новый ид приходит.. при мерж эта строчка добавляется как новая, а не изменяется ид у существующей... как сделать чтобы менялся ид у существующей ? если не делать мерж ничего не добавляется и не изменяется.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 16:27 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
А что если просто сделать da.Update(ds)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 16:46 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
Используйте не результат GetChanges() , а массив строк полученный при помощи метода DataTable.Select Например: Код: plaintext 1. 2. 3. 4. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2005, 00:45 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
еще вариант: завести новое ключевое поле в датасете, инкремент... в результате все апдейты будут по этому полю... с уважением... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2005, 11:44 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
Да, нет. Всё должно по дефолту работать. Sa прав. Update нужно делать строчкам и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2005, 12:14 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
ну может и строчками.. ((: понял что было не так в моей моделт обновления..надо было передавать сам датасет - тада он и обновляет на новые ид..а если передавать GetChanges(), то она обновляет ид, но только в этом датасете, а не базовом..соотвественно мерж надо вручную делать ((: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2005, 14:01 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
sergei.knyazevЕсли Вы поставили галочку Refresh the DataSet при создании адаптера в Advanced Options... то всё должно само собой обновиться, потому что тогда метод Update() положит то что станет в базе обратно в строчку. Для этого сначала делается INSERT INTO, а потом SELECT. Столкнулся с проблемой автора топика, только для аксесовской базы. И тут оказалось что галочку поставить невозможно - поле заблокировано! И что теперь, insert писать руками? Нафиг тогда нужен этот типизированный датасет! Ето-нить может сталкивался с такой проблемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 19:13 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
мученник.net Ето-нить может сталкивался с такой проблемой? ответ здесь http://www.sql.ru/forum/actualthread.aspx?tid=271022 Код: plaintext Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 07:34 |
|
||
|
Типиз. Dataset и AutoIncrement
|
|||
|---|---|---|---|
|
#18+
Как оказалось, не все так просто - добавление в типиз. набор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 21:31 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=33005128&tid=1353363]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 391ms |

| 0 / 0 |
