Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение данных в DataSet, как сравнивать два DataSet-a? 
:(
    Опции темы
deinlandel
Дата 20.6.2008, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.6.2008

Репутация: нет
Всего: нет



В двух объектах типа DataSet лежат данные в таблицах (рез-ты вып-я запросов). Надо проверить, одни и те же это данные. Есть ли эффективный способ (без перебора в цикле строк таблиц) сравнения? Хотя бы двух таблиц между собой? 

(пишется некая система тестирования SQL-запросов на корректность - нужные ли данные он возвращает.  эталонные данные для сравнения должны быть в XML... у ДатаСетов с этим просто, потому выбрал их)
PM MAIL   Вверх
jonie
Дата 20.6.2008, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



лучшее имхо решение это всеже сравнение средставами sql server
Код

select * 
 into #OopsTable
 from @tab1 t1
 left join @tab2 t2 on t1.field1=t2.fielld1 AND t1.field2=t2.field2 AND ....
 AND t2.somefield IS NULL
select * from #oopsTable  --result set


но можно сравнить и средставами датасетов... циклами (так решал Гамильтон в сборнике рецептов ADO.NET)
возможно серелизовать данные в XML и мутить с ним...
также стоит посмотреть на метод merge для DataTable


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
deinlandel
Дата 24.6.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.6.2008

Репутация: нет
Всего: нет



Увы, на этапе написания проги ни число, ни названия, ни типы колонок мне неизвестны... так что метод с SQL не подойдет
PM MAIL   Вверх
Twwi
Дата 25.6.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 8.11.2005
Где: Домодедово

Репутация: нет
Всего: 5



если интересует только битовый ответ, а не в чем конкретно разница, можно использовать метод Merge() датасета или таблицы. он объединяет данные исключая совпадения. Т.Е. можно посмотреть количество записей в одной таблице, объединить ее со сравниваемой и если число записей не иззмениться, считать что они одинаковы.
Смотрите в параметры мерджа.
Есть еще метод Equals(), но в работе с данными я не видела примеров.

Это сообщение отредактировал(а) Twwi - 25.6.2008, 14:39
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.