powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataView
2 сообщений из 2, страница 1 из 1
DataView
    #32519815
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
У меня следующий вопрос.
Есть dataSet с таблицей myControl (idControl, X, Y, W, H, priority). Требуется в процессе программы отсортировывать значения по priority, и отфильтровывать по следующему условию (Filtr=(X>0 и Y>0 и W>100 и H>100).
Полученные данные отобразить в таблице и отрисовать на панели.

Вот код который у меня получился


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DataView dv=new DataView (this.dataset11.myControl);
dv.Sort="priority";
dv.RowFilter ="X>0 and Y>0 and W>100 and H>100";

this.dataGrid1.DataSource = dv ;

int i= 0 ;
Graphics gr=this.CreateGraphics()

foreach(DataRow	r in dv.Table.Rows)
{

int idControl=(int)r.Table.DefaultView[i][ 0 ];
float X=float.Parse(r.Table.DefaultView[i][ 1 ].ToString());
float Y=float.Parse(r.Table.DefaultView[i][ 2 ].ToString());
float W=float.Parse(r.Table.DefaultView[i][ 3 ].ToString());
float H=float.Parse(r.Table.DefaultView[i][ 4 ].ToString());


gr.DrawRectangle (new Pen (Color.Red),X,Y,W,H);

i++;

}

При работе программы, в таблице отображаются правильные данные (строки которые соответствуют фильтру), а при рисовании, рисуются все Control'ы?
Нужно рисовать только те, которые находятся в фильтре
Как организовать правильно цикл по DataView??
...
Рейтинг: 0 / 0
DataView
    #32519830
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
DataView dv=new DataView (this.dataset11.myControl);
dv.Sort="priority";
dv.RowFilter ="X>0 and Y>0 and W>100 and H>100";
this.dataGrid1.DataSource = dv ;
//int i= 0 ;
Graphics gr=this.CreateGraphics()
// Твой foreach меняем на этот
for(int i =  0 ; i < dv.Count; ++i) 
{ 
   DataRow r = dv[i].Row;
   int idControl=(int)r["idControl"];
   float X=  (float)r["x"];
//and etc ...........................
} 
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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