Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
... с тем, чтобы их синхронизировать. то есть записи отсутствующие в одноименной таблице первого датасета взять из второго и затем наоборот появившиеся новые записи в первом записать во второй. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 11:36 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Есть такой метод Merge ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 11:46 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Спасибо. Как говорится - будем посмотреть :). Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 12:11 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
не получается сохранить результат в БД... Код: plaintext 1. 2. 3. после этого открываю ацессом БД а там всё старое, хотя в гриде на моей форме отображается правильный т.е. обновлённый датасет dataSet1. Туплю? Очччень вероятно :), но где? Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 16:55 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Вообще сделай DataWizard да и посмотри какой он все разруливает. Я лично отрабатываю DataSet в такой последовательности: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 07:59 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Тьфу ты на me не смотри в C# это this писал по памяти и наполовину написал на VB.NET половину на C# :-) но думаю идея понятна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 08:01 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Я что-то с трудом понимаю на счёт этих .GetChanges(). На мой взгляд мне это ничего не даёт. У меня несколько БД с одинаковой структурой, одна на сервере и несколько на клиентах, которые надо синхронизировать, т.е. новые записи появившиеся на сервере должны быть переданы клиенту и наоборот. То есть имеем два датасета, которые и надо сравнивать. Вообще сделай DataWizard да и посмотри какой он все разруливает Делал, он делает также как и я т.е. oleDbDataAdapter1.Update(dataSet1); Но у меня данные в БД не меняются а у него да. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 11:55 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. А если так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 12:34 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Так я тоже пробовал - не работает. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 12:39 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Проверь а что возвращает метод DataSet HasChanges() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 12:58 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Что мне это даст? У меня 2 датасета от двух РАЗНЫХ БД с одинаковой структурой. Да и дело не в том - результирующий-то датасет правильный, всё работает, только вот в БД не записывается. oleDbDataAdapter1.Update(dataSet1); Вот это вот ДОЛЖНО работать, но почему-то в БД никаких изменений. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 13:17 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Ну HasChanges вернет вообще если какие либо изменения в DataSet или нет. М ожно также getChanges прогнать чтобы узнать что то вообще меняется или нет. Ну причин может и до и больше. Начать можно и с адаптера. Сам его писал или визардом сделал? что вызывается storedProcedure или sql- запрос. Какой sql- запрос. или динамически update генеришь, какой? Выдается ли какая ошибка? Побольше от тебя информация и поболе будет понятно в чем проблема. P.S. И еще AcceptChanges всегда помещается уже после Update этот метод принимает изменения совершенные базой данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 13:52 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
посмотрите это\r \r /topic/61041 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 14:26 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Вот набросал тестовое приложение. На форме лежат два датагрида, 4-е кнопки + oleDbDataAdapter1 oleDbConnection1 dataSet11 + oleDbDataAdapter2 oleDbConnection2 dataSet21 первый грид связан с датасет11, второй с датасет21 кнопки 1 и 3 : заполняют датасеты данными из БД (успешно) кнопка 2: добавлена в тестовых целях, если я вручную в гриде что-либо изменю и нажму на эту кнопку, то изменения заносятся в БД (снова успешно) заметьте без всяких dataSet11.AcceptChanges(); кнопка 4: здесь находятся все проблемы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 14:41 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Мне интересно посмотреть HasChanges не после того как ты данные уже закоммитил AcceptChanges() ом а до него до Update вообще. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это снимет лишнии дерганья. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:07 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
тоже false Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:17 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
hDrummer прав, тебе надо туда по его ссылке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 15:41 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
А вот так выдаёт true, но попрежнему не работает Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А вот так выдаёт true и ошибку,говорит что команда упдате подействовала на 0 записей Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. По ссылке ходил, читал - не утешительно. Возникает вопрос: А на кой тогда нужен ds1.Merge(ds2) ?! Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 16:13 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Да на какой ляд ды данные в DataSet commitишь до Update? Делай так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 18:42 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Вы невнимательно читали мой пост. Во втором примере я как раз так и делаю и получаю ошибку, если dataSet1.AcceptChanges(); не стоит перед упдате а здесь dataSet11.Merge(dataSet21,true); выставлено труе . Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 18:56 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Да я прочитал, но также и очевидно что AcceptChanges() не ставиться перед Update поэтому можно перестать рассматривать другие варианты. Какая ошибка ? Дострочно можете ее привести здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 19:06 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Да, могу дострочно: System.Data.DBConcurrencyException: Parallelitätsverletzung : Der UpdateCommand hat sich auf 0 Datensätze ausgewirkt. Что можно перевести на русский так: System.Data.DBConcurrencyException: Повреждение параллелности : UpdateCommand подействовал на 0 записей Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 19:22 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Да кажется по поводу построчно я погорячился :-) ни шпрехен я. Попробуй еще до update поставить следующее this.BindingContext[dataSet1].EndCurrentEdit(); А вообще надо еще попробовать через GetChanges как делаю я . Это и правильно потому что для Update свой dataset, для Insert получается свой. А самое главное что updatу отдается на съедение не весь DataSet а только изменившиеся его часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 19:53 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
По вашему, это должно выглядеть так: Код: plaintext 1. 2. 3. Но это же в моём случае бред. Получается, что я беру серерный датасет, смотрю есть ли там изменённые данные, их там естественно нет, и делаю мерге с 0 значением. Или я чего-то не понял? А куда же мне клиентский датасет пристроить и как мне ЕГО с серверным сравнить? Я сделал всё что мог, кто может пусть сделает лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 10:17 |
|
||
|
Как сравнить два DataSet'a ?
|
|||
|---|---|---|---|
|
#18+
Давай уточним постановку: Есть две БД: БД1 и БД2. Соответственно к ним два DataSet: ds1, ds2. БД1 и БД2 - одинаковы по структуре. Цель: Слить данные из БД2 в БД1. Вопросы: 1) правильно я понял твою задачу? 2) какое количество таблиц в ds1 и ds2? 3) могут ли записи в ds1 и ds2 совпадать? 4) что надо делать если записи из ds1 и ds2 совпадают по идентификатору но не по содержанию. Оставить в ds1 как есть, переписать их из ds2. Либо спросить юзера что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 10:41 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32445573&tid=1439386]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 257ms |
| total: | 398ms |

| 0 / 0 |
