#c# #datagridview
#c# #просмотр сетки данных
Вопрос:
Когда пользователь нажимает клавишу backspace, я хочу, чтобы текстовое поле и datagridview очистились. С этим кодом, который у меня есть, я должен дважды нажать клавишу обратного пробела, чтобы очистить datagridview.
private void txtMusicianName_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back)
{
e.Handled = false;
gridSelectMusician.Rows.Clear();
txtMusicianName.Clear();
}
}
РЕДАКТИРОВАТЬ: я соответствующим образом изменил свой код. У меня также есть вызов базы данных: "SELECT * FROM `login` WHERE `Email` LIKE '%" txtMusicianName.Text "%' OR `Name`LIKE '%" txtMusicianName.Text "%'"
я попытался добавить if (txtName.Text != " ")
, а затем выполнить вызов базы данных. С помощью этого кода я получаю половину желаемого результата. Если пользователь вводит пробел, ничего не происходит, что хорошо, но когда пользователь возвращает пробелы, все имена появляются снова. Как мне предотвратить отображение таких имен?
Комментарии:
1. Код работает так, как опубликовано, так что у вас есть что-то еще. Я бы предпочел событие KeyDown :
if (e.KeyCode == Keys.Back)
.txtMusicianName.Text.Trim();
это функция, а не метод, поэтому вы игнорируете результаты. В любом случае бессмысленно, поскольку строка над ним уже очищает ее.2. Я соответствующим образом изменил свой код. У меня также есть вызов db:
"SELECT * FROM `login` WHERE `Email` LIKE '%" txtMusicianName.Text "%' OR `Name`LIKE '%" txtMusicianName.Text "%'"
я попытался добавитьif (txtName.Text != " ")
, а затем выполнить вызов базы данных. С помощью этого кода я получаю половину желаемого результата. Если пользователь вводит пробел, ничего не происходит, что хорошо, но когда пользователь возвращает пробелы, все имена появляются снова. Как мне предотвратить отображение таких имен?3. Используйте параметры sql, чтобы избежать ошибок SQL-инъекции и форматирования. Попробуйте
if (txtName.Text.Trim().Length > 0) {...}