powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как бы сделать SELECT к DataTable
11 сообщений из 11, страница 1 из 1
Как бы сделать SELECT к DataTable
    #33478043
skitter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация:
Есть ДатаСет, в нем 2 таблицы Мастер-Детал. Ну, например, Клиенты-Заказы.
Нужно выбрать из Клиентов тех, у которых нет ни одного заказа. И делать это нужно уже тогда, когда таблицы загружены в ДатаСет, а не находятся еще на сервере. Другими словами, нужно сделать что-то типа SQL-запроса NOT IN.

Каждый раз обращаться к серверу с таким запросом - грустно. Тогда нужно сначала делать сохранение сделанных изменений в базе, а уже потом посылать такой запрос к ней. А это все время. Да и морока. Может, подскажет кто? Может есть какая-нить техника проведения подобных операций. Был бы очень благодарен.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33478224
Фотография Sv219
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сматри RowFilter
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33478522
skitter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sv219сматри RowFilter

Вы не поняли. RowFilter можно отсортировать строки в уже сделанном запросе. Я же не могу сделать сам запрос.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33478567
Vlaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно сделать без запросов. Допустим имеем датасет m_DS с двумя таблицами "Client", "Order". Т.к. таблицы Мастер-детал, предположим
у датасета есть DataRelation "ClientOrder",
ParentTable - "Client" с ParentColumns "Id",
ChildTable - "Orders" c ChildColumns "ClientId".
тогда выборку получим примерно так:
foreach( DataRow dr in m_DS.Tables["Client"].Rows)
{
if( dr.GetChildRows("ClientOrder").Length == 0 )
{
listBox1.Items.Add(dr["ID"].ToString() + " \t" + dr["Name"].ToString());
}
}
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33478657
skitter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Это вариант. Жаль, что в родительской таблице строк очень много. Но все равно - спасибо. Мне в голову это не пришло.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33482004
Sergey Kartashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ахтунг! Если строк очень много, ДатаСет может лопнуть. У меня лопался когда за гигабайт оперативки вылезал.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33482219
skitter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey KartashevАхтунг! Если строк очень много, ДатаСет может лопнуть. У меня лопался когда за гигабайт оперативки вылезал.

Ну-ка, ну-ка, расскажите, пожалуйста подробнее. Как это лопнуть? Что при этом происходит? И как Вы выходили из этой ситуации. Очень интересно.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33482760
Sergey Kartashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это значит что он вылетает с Unhadnled Exception вместе со всей программой, собственно на методе .Fill
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33482761
Sergey Kartashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А выходил я из этой ситуации, разделив очень большую табличку вьюхами.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33482853
fupslot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не надо придумывать.
у DataTable есть функция Select он действует почти точно так же как и в SQL
Она возвращает DataRows
Выглядит это так.
ds.tables(0).Select("field=0")
Добавь к основной таблице вычисляемое поле в котором будет считаться количество заказов у клиента, что то вроде:
ds.tables(0).columns.add("OrderCount", type.GetType("System.Int32"),"Count(child(имя_связи).OrderID)")
А потом примени к этой таблице функцию Select, получишь то, что тебе надо.
...
Рейтинг: 0 / 0
Как бы сделать SELECT к DataTable
    #33483311
skitter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, попробую.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как бы сделать SELECT к DataTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]