Вот код, который я использую для поиска, он возвращает значение, когда мы вводим целое имя, но мне нужно текстовое поле автозаполнения, которое показывает предложения, когда я набираю частичное имя.
private void textBox3_KeyUp_1(object sender, System.Windows.Input.KeyEventArgs e)//Name Search
{
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select [Patient ID],[Patient Name],[Gender],[StudyDateTim],[Modality],[Study Name] From RepView Where [Patient Name] like '%" + textBox3.Text + "%'";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGrid1.ItemsSource = dt.DefaultView;
con.Close();
}
Вы можете найти его в WPF Toolkit, который также доступен через NuGet
Также взгляните на этот красивый многопользовательский WPF Autocomplete TextBox, он может вам помочь.
вы также можете добавить AutoCompleteBox
в панель инструментов, щелкнув по нему, а затем выберите "Элементы", перейдите к компонентам WPF, введите фильтр AutoCompleteBox
, который находится в System.Windows
Вы можете создать AutoCompleteTextBox
с помощью простого textbox
управления и listbox
управления. Вот учебник, который поможет вам пройти весь процесс.
Но если вы не хотите создавать его самостоятельно, вы можете просто использовать уже созданный элемент управления кем-то другим. Загрузите его здесь.
И вот учебник, в котором вы узнаете, как использовать этот элемент управления.
ExecuteNonQuery
в вашем случае. И вы всегда должны использовать параметризованные запросы . Этот тип конкатенации строк открыт для атак SQL-инъекций . Также используйте оператор using для удаления ваших соединений с базой данных.