2015-04-23 2 views
0

я этот кусок коды для автозаполнения моего поиска текстового поляделают автозаполнение текстовым поля с помощью TableAdapter окна формы C#

AutoCompleteStringCollection coll = new AutoCompleteStringCollection(); 
     DataTableReader reader=this.customerTableAdapter.GetData().CreateDataReader(); 
     while(reader.Read()){ 
      coll.Add(reader.GetString(0)); 
     } 

     search.AutoCompleteCustomSource = coll; 

является то, что лучшим способом выполнить это? или есть функция, чтобы сделать автозаполнение источником самого столбца напрямую?

кроме того, этот код фильтрует только первое имя, но когда я использую этот кусок кода с GridView это дает мне лучше искать возможности, так что ловит любую часть имени

private void search_KeyUp(object sender, KeyEventArgs e) 
    { 
     string outputInfo = ""; 
     string[] keyWords = search.Text.Split(' '); 

     foreach (string word in keyWords) 
     { 
      if (outputInfo.Length == 0) 
      { 
       outputInfo = "(Name LIKE '%" + word + "%')"; 
      } 
      else 
      { 
       outputInfo += " AND (Name LIKE '%" + word + "%')"; 
      } 
     } 

     //Applies the filter to the DataView 
     myView.RowFilter = outputInfo; 
    } 

предложения, пожалуйста,

+0

по мне все правильный .. –

+0

как насчет кода поиска по ключевым словам? как я могу объединить его в источнике автозаполнения –

ответ

0

этот кусок кода делать трюк без использования петли, он заполняет один столбец таблицы в массив строк, а затем он используется в качестве autoCompleteSource

  DataTable dt = this.data_allDataSet.merchandise; 
     //use LINQ method syntax to pull the Title field from a DT into a string array... 
     string[] postSource = dt 
          .AsEnumerable() 
          .Select<System.Data.DataRow, String>(x => x.Field<String>("name")) 
          .ToArray(); 

     var source = new AutoCompleteStringCollection(); 
     source.AddRange(postSource); 
     cat_name.AutoCompleteCustomSource = source; 
     cat_name.AutoCompleteMode = AutoCompleteMode.Suggest; 
     cat_name.AutoCompleteSource = AutoCompleteSource.CustomSource; 
Смежные вопросы