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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обьединение двух OleDbDataReader reader 
:(
    Опции темы
ibz07
Дата 2.1.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я имею два обьекта 
OleDbDataReader reader1
OleDbDataReader reader2
Нада вывести те записи которые совпадают reader1 и в reader2 ?

---------------------------------------------
DataTable table = new DataTable();
OleDbDataReader reader = command.ExecuteReader();
table.Load(reader);

Если обьекты reader1 и в reader2 сравнить невозможно, то нада сравникть table1 и  table2 ?

Это сообщение отредактировал(а) ibz07 - 2.1.2010, 17:59


--------------------
Голосование - лучшая книга по Unix - http://forum.vingrad.ru/forum/topic-280686.html
PM MAIL   Вверх
Экскалупатор
Дата 2.1.2010, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Цитата(ibz07 @  2.1.2010,  16:58 Найти цитируемый пост)
Если обьекты reader1 и в reader2 сравнить невозможно, то нада сравникть table1 и  table2 ?

мне кажется что это тоже не прокатит. по какому принципу ты их собираешься сравнивать? в лучшем случае ты сможешь сравнить их адреса. надо будет сравнивать не таблицы а значения в этих таблицах. мне кажется проще написать правильный запрос к базе, и сразу выбрать то что нужно.
PM MAIL ICQ   Вверх
ibz07
Дата 2.1.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Экскалупатор @ 2.1.2010,  18:08)
Цитата(ibz07 @  2.1.2010,  16:58 Найти цитируемый пост)
Если обьекты reader1 и в reader2 сравнить невозможно, то нада сравникть table1 и  table2 ?

мне кажется что это тоже не прокатит. по какому принципу ты их собираешься сравнивать? в лучшем случае ты сможешь сравнить их адреса. надо будет сравнивать не таблицы а значения в этих таблицах. мне кажется проще написать правильный запрос к базе, и сразу выбрать то что нужно.

Так не получится.
Мене нужно в коде некоторые запросы обьединять между собой, а некоторые сравнивать между собой(выбирать одинаковые записи).
Объединить через Union можно, а вот объединить только одинаковые записи не знаю как?
Тогда мене нужно объединить два запроса в самом коде так чтоб получился перехресный запрос, тоже не выйдет.

Добавлено через 5 минут и 53 секунды
Мене нужно объединить только одинаковые записи не знаю как?

Добавлено через 12 минут и 22 секунды
А можно как-то послать запрос не на базу даних, а на DataTable - сделать дополнительную выборку.

Это сообщение отредактировал(а) ibz07 - 2.1.2010, 18:36


--------------------
Голосование - лучшая книга по Unix - http://forum.vingrad.ru/forum/topic-280686.html
PM MAIL   Вверх
serbelyakov
Дата 2.1.2010, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Мене нужно в коде некоторые запросы обьединять между собой, а некоторые сравнивать между собой(выбирать одинаковые записи).


Одинаковые записи - это записи у которых значения всех полей совпадают. Или я не прав? А если прав, то тогда запрос к 
Цитата

table1 и  table2 
 будет выглядеть примерно так:

SELECT table1.* FROM table1 INNER JOIN table2
   ON  table1.field1 = table2.field1
   AND  table1.field2 = table2.field2
   ...
   AND  table1.fieldn = table2.fieldn

PM MAIL WWW   Вверх
ibz07
Дата 2.1.2010, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня опше то в базе данных одна таблица.
А объект table имеет тип DataTable 
table1 и table2 - это в коде, а не в базе данных...
Нада еще учитывать что поле №1(y) в первой таблице может совпадать с полем №10(x) с другой таблицы.

Это сообщение отредактировал(а) ibz07 - 2.1.2010, 22:36


--------------------
Голосование - лучшая книга по Unix - http://forum.vingrad.ru/forum/topic-280686.html
PM MAIL   Вверх
Экскалупатор
Дата 2.1.2010, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



ibz07, что у тебя совсем что то не понятное. давай по порядку. у тебя в базе есть одна таблица. ты из нее выбираешь данные, но выбираешь их в два datatable? а зачем? не проще ли в один выбрать все что нужно сразу?
PM MAIL ICQ   Вверх
ibz07
Дата 2.1.2010, 23:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Экскалупатор @ 2.1.2010,  23:09)
ibz07, что у тебя совсем что то не понятное. давай по порядку. у тебя в базе есть одна таблица. ты из нее выбираешь данные, но выбираешь их в два datatable? а зачем? не проще ли в один выбрать все что нужно сразу?

Параметр1={ Значение1 або Значение2 або ЗначениеN }
{ Параметр1, Параметр2, ПараметрN }
Количество параметров и количество значений неизвестно.
Ну это сделать возможно, но если пользователь не выберет какой-то параметр, то вместо значения null какое значение посылать(Оно должно означать любой тест)

Проектирую СУБД, у меня проблема: "Когда посылаю запрос с неизвестным количеством параметров до базы данных, если хотябы у одного параметра не будет значения, то запрос не сработает" Какое значение нужно подставить вместо пустого поля(параметра) чтоб запрос сработал?


Это сообщение отредактировал(а) ibz07 - 3.1.2010, 00:18


--------------------
Голосование - лучшая книга по Unix - http://forum.vingrad.ru/forum/topic-280686.html
PM MAIL   Вверх
Экскалупатор
Дата 3.1.2010, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



а что мешает программно составить этот самый запрос? а тот параметр, для которого нету значения, просто не указывать.
PM MAIL ICQ   Вверх
ibz07
Дата 3.1.2010, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Экскалупатор @ 3.1.2010,  00:23)
а что мешает программно составить этот самый запрос? а тот параметр, для которого нету значения, просто не указывать.

Запрос возратит 0 -записей, так как будет считать, что второй параметр должен быть пустым, а мене нужно просто чтоб не учитывал второй параметр.


--------------------
Голосование - лучшая книга по Unix - http://forum.vingrad.ru/forum/topic-280686.html
PM MAIL   Вверх
Экскалупатор
Дата 3.1.2010, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



ibz07, ты меня явно не понял(или я не понял что именно тебе нужно сделать). запрос это просто строка, которая передается в базу для выполнения. значит с этой строкой можно сделать все что нужно до отправки базе. т.е. если у тебя нету каких то параметров, то их можно просто не учитывать, а собрать запрос руками без этих самых параметров.
PM MAIL ICQ   Вверх
ibz07
Дата 3.1.2010, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Экскалупатор @ 3.1.2010,  00:30)
ibz07, ты меня явно не понял(или я не понял что именно тебе нужно сделать). запрос это просто строка, которая передается в базу для выполнения. значит с этой строкой можно сделать все что нужно до отправки базе. т.е. если у тебя нету каких то параметров, то их можно просто не учитывать, а собрать запрос руками без этих самых параметров.

Собрать запрос, то можно, то там будет куча гимароя с приоритетом операций OR и AND и дужками.
В разных ситуациях нужно в разных местах расставлять знаки OR и AND и () в одних нужно добавлять, а у других нет.

Это сообщение отредактировал(а) ibz07 - 3.1.2010, 02:06


--------------------
Голосование - лучшая книга по Unix - http://forum.vingrad.ru/forum/topic-280686.html
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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