Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > ExecuteScalar() |
Автор: Banderos 14.4.2011, 17:57 | ||||
Здравствуйте! Я написал запрос вот такого типа:
Теперь хочу узнать сколько записей удовлетворяет запросу:
Так вот, когда хоть 1 запись удовлетворяет запросу, то все отлично работает, а вот если БД нет строк, удовлетворяющих запросу, то начинаются ошибки и студия ругается. Как быть??? Разве, если COUNT = 0, т.е. нет ни 1 записи, то почему не происходит преобразование к (int) нуля и kol не становится равным 0. Заранее спасибо! |
Автор: Voyager 15.4.2011, 01:12 |
Потому что видимо возвращать нечего. Как решить: 1. Проверять что возвращает cmd.ExecuteScalar(), если null, значит нет записей. object obj = cmd.ExecuteScalar(); int kol= obj != null ? (int)obj : 0; либо int kol= Convert.ToInt32(cmd.ExecuteScalar()); 2. Использовать DbDataReader и проверять что он возвращает reader = cmd.ExecuteReader() reader.Read |
Автор: Banderos 15.4.2011, 10:36 | ||||
Voyager, Спасибо! Вот так вот:
работает даже, когда результат запроса равен нулю. а вот так вот, не хотело работать:
|
Автор: jonie 15.4.2011, 14:00 |
Banderos, потому что возращается не null, а DBNull.Value |