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

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

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

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

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

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

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

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

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
Как отфильтровать данный в datagrid?
    #32433293
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как отфильтровать данный в datagrid?
    #32433302
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как отфильтровать данный в datagrid?
    #32435299
kika
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как здесь вместо 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
Как отфильтровать данный в datagrid?
    #32435461
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как здесь вместо 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
13 сообщений из 13, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как отфильтровать данный в datagrid?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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