Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Merge не приводит к появлению HasChanges
|
|||
|---|---|---|---|
|
#18+
Привет. глупый наверное вопрос, но если сделать ds1.Merge(ds2) то строки в ds1 появляются но ds1.HasChanges == false... К чему бы это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 13:21 |
|
||
|
Merge не приводит к появлению HasChanges
|
|||
|---|---|---|---|
|
#18+
У метода Merge есть дополнительные параметры, в том числе и те которые отвечают за статус полученных строк... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 14:25 |
|
||
|
Merge не приводит к появлению HasChanges
|
|||
|---|---|---|---|
|
#18+
Наверное я не правильно объяснил.. Задача кажется простейшая но я как всегда воткнул и не могу разобраться. есть запись "компания" к ней приделаны записи "контакт". я показываю в ds1 данные к одной компании и все ее контакты. потом юзер нажимает кнопку "добавить" и выбирает новый контакт. этот контакт по моему плану должен был загрузиться в ds2 и когда юзеру надоест добавлять контакты - слить ds2 в ds1 и таким образом добавить нужные записи в главный датасет... что бы по выходу из главной формы ds1 проапдейтил базу нужным образом (т.е. создал записи связывающие "компанию" с новыми "контактами"). но на практике - в ds1 есть новые записи а проапдейтить я их не могу т.к. датасет думает что это его родные старые записи.... пытался просто скопировать datarow из ds2 в ds1 вместо слияния получил какую то странную балалайку типа ""This row already belongs to another table."" что то я совсем отупел. как перенести строку из одной таблицы в другую? что? неужели конструировать новую строку и копировать каждое поле и потом делать типа ds1.dt1.Rows.Add(newrow) ?? что то тут не то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 15:44 |
|
||
|
Merge не приводит к появлению HasChanges
|
|||
|---|---|---|---|
|
#18+
Все дело в том что в датасете у строки есть свойство RowState и при выполнении Merge по умолчанию строки помечаются как неизмененные, если же выставить атрибуты у метода Merge то строки так и остануться помеченными как добавленные и следовательно попросятся на сохранение на сервер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 15:59 |
|
||
|
Merge не приводит к появлению HasChanges
|
|||
|---|---|---|---|
|
#18+
спасибо за попытку помочь коренному жителю чукотки :) на самом деле я конечно же попробовал все варианты ключей прежде чем начал вопить тут :) и проблема теперь ясно в чем (зал дружно скандирует: "в генах!!!") - когда добавляешь записи в дс2 они попадают туда с роустейт = анченджед. и это очевидно правильно т.к. записи то добавлены целиком и ничего не менялось. и при перезаписи в дс1 они остаются анченджед т.к. при исопльзовании ключа при слиянии можно либо оставить изменения в дс1 или переписать их из дс2 но поскольку в дс1 они еще не существуют а в дс2 они анченджед то как ни крути мерджем эту задачу не выполнить и капец. поэтому пришлось руками копировать записи и на этом поставил точку. для тех кто напорется на теже грабли: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2003, 17:25 |
|
||
|
|

start [/forum/topic.php?fid=20&gotonew=1&tid=1439815]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 427ms |

| 0 / 0 |
