Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как отфильтровать данный в datagrid? / 13 сообщений из 13, страница 1 из 1
27.02.2004, 13:33
    #32424185
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
День добрый!

Люди, помогите разобратья!!!!

Выводится datagrid, отсортированная по всем полям. Используется процедура, хранимая на SQL-сервере, в которой поля сортировки и заданы.

Так вот, мне необходимо программно (VB.NET) отсортировать эти отсортированные поля по другому полю после нажатия на кнопку!!!

Пожалуйса, подскажите как это сделать!!!
...
Рейтинг: 0 / 0
27.02.2004, 16:26
    #32424644
Anthei
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
Смотри свойство DefaultView у DataTable или используй DataView.
...
Рейтинг: 0 / 0
04.03.2004, 17:20
    #32431641
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
А что такое DataTable?
...
Рейтинг: 0 / 0
04.03.2004, 17:26
    #32431652
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
Это класс такой.
...
Рейтинг: 0 / 0
04.03.2004, 18:11
    #32431743
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
Могу как-то отсортировать, при этом вызывая Stored Procedure, которая в свою очередь сортирует данные по всем столбцам.
Мне нужно своего родо наложение сортировки на сортировку.
...
Рейтинг: 0 / 0
05.03.2004, 09:00
    #32432074
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
>Мне нужно своего родо наложение сортировки на сортировку.

Используй класс DataView можешь отсортировать, отфильтровать как угодно. Можно отсортировать еще и в datagrid щелкая по его headerу, только должно в tablestyle свойсто разрещающее сортировку, насколько я помню по умолчанию разрешено, но это кривое решение и сильно ограниченое. Еще раз повторю изучай DataView. Хотя если ты не знаешь что такое DataTable то изучай полностью ADO.net.
...
Рейтинг: 0 / 0
05.03.2004, 14:11
    #32432724
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
Дело в том, что я использую reader!!!
...
Рейтинг: 0 / 0
05.03.2004, 14:52
    #32432832
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
>Дело в том, что я использую reader!!!
То есть DataReader

Ну DataReader и как раз используется в случае тогда когда необходимо быстро слить данные как есть, без последующей серьезной обработке. Можно конечно создать самому объект dataTable на основе данных dataReader или извратиться через ArrayList вариантов дофига. Но рекомендую использовать DataSet и проблема закончится. То есть ты не по назначению изначально выбрал класс считывания данных вот что я хотел сказать.

Stop А я не понимаю тогда как ты в datagrid данные заливаешь readerом????
...
Рейтинг: 0 / 0
05.03.2004, 16:41
    #32433059
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
Вот так:

con.Open()
Dim reader As System.Data.SqlClient.SqlDataReader = cmd.ExecuteReader()
DataGrid1.AutoGenerateColumns = False
DataGrid1.DataSource = reader
DataGrid1.DataBind()
Dim intCount As Integer = DataGrid1.Items.Count()
If intCount <= 0 Then
DataGrid1.Visible = False
Else
DataGrid1.Visible = True
End If
reader.Close()
...
Рейтинг: 0 / 0
05.03.2004, 20:02
    #32433293
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
2 kika
Блин не нравиться мне все это, но вот тебе тогда и DataView. Нет времени сейчас рыться в документации, но думаю DataTable в твоем случае создается не явно.
Код: plaintext
1.
2.
3.
Dim myDataView as DataView
Dim cm As CurrencyManager = CType(Me.BindingContext(Me.DataGrid1.DataSource, Me.DataGrid1.DataMember), CurrencyManager)
myDataView = CType(cm.List, DataView)


Далее обрати внимание на myDataView.RowFilter and myDataView.Sort (соответственно для фильтрации и сортировки данных)

ИМХО: Не правильно ты выбрал класс. Если бы взял dataset то избежал бы многих проблем и к dataView бы подобрался через DefaultViewю
...
Рейтинг: 0 / 0
05.03.2004, 20:16
    #32433302
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
2 kika
Блин не нравиться мне все это, но вот тебе тогда и DataView. Нет времени сейчас рыться в документации, но думаю DataTable в твоем случае создается не явно.
Код: plaintext
1.
2.
3.
Dim myDataView as DataView
Dim cm As CurrencyManager = CType(Me.BindingContext(Me.DataGrid1.DataSource, Me.DataGrid1.DataMember), CurrencyManager)
myDataView = CType(cm.List, DataView)


Далее обрати внимание на myDataView.RowFilter and myDataView.Sort (соответственно для фильтрации и сортировки данных)

ИМХО: Не правильно ты выбрал класс. Если бы взял dataset то избежал бы многих проблем и к dataView бы подобрался через DefaultView
...
Рейтинг: 0 / 0
09.03.2004, 18:11
    #32435299
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
Как здесь вместо SQL-запроса выполнить Store Precedure, хранимую на SQL-сервере?

private void bindData()
{
SqlConnection myConn = new SqlConnection("server=localhost;uid=sa;pwd=;database=pubs");
SqlDataAdapter myData = new SqlDataAdapter("select * from authors", myConn);
DataSet ds = new DataSet();
myData.Fill(ds);
DataGrid1.DataSource = ds.Tables[0].DefaultView;
DataGrid1.DataBind();
}
...
Рейтинг: 0 / 0
09.03.2004, 22:15
    #32435461
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отфильтровать данный в datagrid?
>Как здесь вместо SQL-запроса выполнить Store Precedure, хранимую на SQL-сервере?

Можно Примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
// здесь все как у тебя экземпляр класса SqlConnection

SqlCommand myCmd = new SqlCommand( "имя_процедуры" , myConn);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.Add(здесь передаешь экземпляр класса SQLParameter, то есть параметры ХП) ;
//можно перебрать все параметры их тип, направление и т.д. 



после того как настроил SqlCommand добавляешь его к своему DataAdapterу:
Код: plaintext
1.
2.
SqlDataAdapter myData = new SqlDataAdapter; 
myData.SelectCommand = myCmd;


А дальше как обычно Fill

Вообще вариантов дофига как тебе нравиться так и делаешь через свойства или через конструкторы, явно создавая дополнительные объекты или нет с точки зрения производительности одинаково, все дело вкуса и для простоты отладки.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как отфильтровать данный в datagrid? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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