У меня есть оператор SQL, который проверяет, есть ли значение в моей базе данных или нет.Я хочу ответить "счастливым путем", если значение не в базе данных.Используя DbDataReader (.NET), я обнаружил, что если запрос SELECT не может найти значение, он выдает исключение - поэтому мой «счастливый путь» заканчивается в исключении, а не в основном блоке try.
Я всегда могу сказать «НЕ В», но я не хочу возвращать все строки в базе данных, которые не имеют значения - так как это вернет многие тысячи результатов, где все, что я хочу, это просто «нет»«здесь нет» типа ответа.
public void wristbandScan(string barcode)
{
string query = "SELECT ticket FROM tickets WHERE
linked_barcode='" + barcode + "'";
ValidTicketEventArgs args = new ValidTicketEventArgs();
try
{
var queryResult = _dbRunner.queryThis(query);
args.Result = false;
args.Message = "WB already linked";
args.Barcode = barcode;
OnValidTicketEvent(args);
}
catch (Exception e)
{
this.updateWristband(barcode);
this.updateValid();
args.Result = true;
args.Message = "WB linked";
args.Barcode = barcode;
OnValidTicketEvent(args);
}
}
Мне кажется неправильным отлавливать счастливый путь в операторе ошибки, но я не хочу отставание, связанное с чтением во всех строках с помощью оператора NOT IN.
Есть ли лучший способ сделать это или этот подход является приемлемой наилучшей практикой?