#c# #try-catch
#c# #попытка-перехват
Вопрос:
Я создал winform, который извлекает данные из базы данных в SQL, для поиска у меня есть поля со списком — cboField и cboOperator, и я использую txtValue. Когда я ввожу (cboField), форма касается автомобилей Оплата (cboOperator) = (txtValue), если произойдет сбой. Как мне вставить что-то, чтобы помешать ему делать это и наоборот, например, Марка автомобиля = 5
private void btnRun_Click(object sender, EventArgs e)
{
if (cboField.SelectedIndex == -1)
{
return;
}
if (cboOperation.SelectedIndex == -1)
{
return;
}
if (txtValue.TextLength == 0)
{
return;
}
string filter;
filter = "[" cboField.Text "]";
filter = cboOperation.Text "'" txtValue.Text "'";
tblCarBindingSource.Filter = filter;
Это событие щелчка для кнопки Выполнить
в нем говорится, что исключение оценки не было обработано в последней строке моего кода, который я вставил
Комментарии:
1. Не могли бы вы, пожалуйста, записать фрагменты вашего кода, чтобы прояснить свой вопрос?
2. вопрос не очень понятен. код был бы более понятным, как и подробности об исключении, возникающем при сбое
3. Вы вообще понимаете для себя, о чем вы говорите? Плюс, где именно в предоставленном коде генерируется исключение?
4. Ваш вопрос не очень понятен. Также, насколько я понимаю, в таких сценариях настоятельно рекомендуется использовать «строго типизированную» функциональность.
5. @zenwalker — Если вы прочитаете последнюю строку, вы увидите, где именно она брошена
Ответ №1:
Я думаю, вы пытаетесь запретить пользователю вводить что-то вроде «5» в ваши текстовые поля, потому что это приводит к тому, что ваш фильтр источника привязки данных выдает исключение EvaluateException?
Трудно точно сказать, что вы ищете, но если это так, попробуйте что-то вроде этого:
try
{
tblCarBindingSource.Filter = filter;
}
catch
{
MessageBox.Show("Please enter valid values in your text fields.");
}
Комментарии:
1. Да, это верно, сейчас все работает нормально, но когда я говорю, что Payment = Ford, он говорит, что не может выполнить операцию «=» в системе. Десятичная и системная. Строка, я пытаюсь сделать ее защищенной от ошибок
2. Хорошо, если вам не нужно обрабатывать разные исключения по-разному, тогда просто удалите конкретный тип исключения. Я отредактировал код, чтобы вместо этого перехватывать все исключения.
3. Просто имейте в виду, что вам может потребоваться по-разному обрабатывать разные исключения в будущем … просто имейте это в виду. Вот почему я вставил это, это хорошая практика.