Фильтр в наборе данных в asp.net C # - PullRequest
2 голосов
/ 15 ноября 2010

Я хочу отфильтровать вид сетки по текстовому обмену в текстовом поле поиска .... если я нажму какой-нибудь символ, такой как «S», вид сетки должен заполниться записью, начинающейся с «S».

Public class DALDepartment
{
public Dataset DepartmentSearch(string Connectionstring, string conditon)
{
 SqlConnection connection = new SqlConnection(connectionstring);
            SqlCommand command = new SqlCommand("select departmentname,departmentcode from Department" + condition, connection);                  
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataSet ds = new DataSet();
            try
            {
                connection.Open();            //Opening Connection                
                adapter.Fill(ds, "Department");      //Filling values to Dataset from Adapter
                connection.Close();          //closing connection
            }
            catch (Exception e)
            {
                ErrorCollection.AddErrors("XMS0000", e.Data + e.Message);
                return null;
            }
            return ds;
          }   
       }

//Dep.Aspx.cs in the asp page
DataSet ds = new DataSet();
        string condition = "where departmentname LIKE '%" + Textbox1.Text + "%'" ;
        ds=DepartmentSearch(Connectionstring,condition);
        GridView1.DataSource = ds.Tables["Department"];
        GridView1.DataBind();

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

 //The Data's are found and loaded in a dataset

 SqlCommand command = new SqlCommand("select departmentname,departmentcode from
 Department" , connection);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataSet ds = new DataSet();
                connection.Open();         
                adapter.Fill(ds, "Department");
                connection.Close();          


//In dataset

 DataSet ds = new DataSet();
 ds = DepartmentSearch(Connectionstring);

Теперь я не знаю, как фильтровать значения в наборе данных.

Я хочу заранее поблагодарить вас, друзья, за ваши ответы и предложения.

Ответы [ 2 ]

4 голосов
/ 15 ноября 2010

Вы можете использовать функцию Select в случае DataTable, например:

dtNames.Select ("name like 'a%'");

Таким образом, вы будетесортирует имя. Помните, что имя должно быть столбцом вашей таблицы данных. Так что в следующий раз вы можете искать только путем изменения алфавита без необходимости выполнения запроса. Но этот метод будет извлекать только те данные, которые доступны только при выполнении первого запроса.Если в базе данных произошли какие-либо изменения, они будут отражены только после выполнения запроса.

3 голосов
/ 15 ноября 2010

Если вы пытаетесь выбрать и отсортировать некоторые строки из вашей базы данных, вам нужно изменить команду select следующим образом:

SqlCommand command = new SqlCommand("select departmentname, departmentcode from Department " + condition + "order by departmentname", connection); 

, что вы хотите, чтобы отсортировать ее только в вашем наборе данных.Я должен сказать, что это невозможно любым другим способом.
Вы можете делать то, что вы хотите с BindingSource.

BindingSource bs = new BindingSource();
bs.DataSource = ds;
bs.Sort = "departmentname asc";
bs.Filter = "departmentname like 'depa%'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...