Как автозаполнить текстовое поле с помощью средней буквы из значения базы данных в c#.net приложения для windows
Мне нужно автоматически заполнить значение текстового поля на основе среднего значения из базы данных. но это работает автозаполнение при вводе первой буквы, а не работает середина буквы .
Что я уже пробовал:
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; AutoCompleteStringCollection DataCollection2 = new AutoCompleteStringCollection(); getData2(DataCollection2); textBox1.AutoCompleteCustomSource = DataCollection2;
private void getData2(AutoCompleteStringCollection dataCollection) { try { string customer= "Customer"; string connetionString = null; SqlConnection connection; SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); DataSet ds = new DataSet(); connetionString = System.Configuration.ConfigurationSettings.AppSettings["connection"]; string sql = "SELECT [party_name] FROM [Party_details] where party_name like '%" +textBox1.Text+ "%'"; connection = new SqlConnection(connetionString); try { connection.Open(); command = new SqlCommand(sql, connection); adapter.SelectCommand = command; adapter.Fill(ds); adapter.Dispose(); command.Dispose(); connection.Close(); foreach (DataRow row in ds.Tables[0].Rows) { dataCollection.Add(row[0].ToString()); } } catch (Exception ex) { MessageBox.Show("Can not open connection ! "); } } catch (Exception trt) { } }
Karthik_Mahalingam
проверить это Автозаполнение текстового поля с поиском подстрок, аналогично SQL Like или содержит[^]
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]