Получить значение агрегатной функции count () из datareader

Кодирование на C # и мой запрос:

query = "select COUNT(*) as rowsCount from employee_leaves where PARTY_ID ='10'";

После выполнения

OracleDataReader dr = command.ExecuteReader();

Как я могу теперь подсчитать int

таблица, которую я получаю из базы данных, имеет 1 строку, содержащую 3 as,

Я пробовал это int i = dr["rowsCount"];

и это, int i = dr.GetInt32(0);

но не вышло.


person Farrukh Sarmad    schedule 01.02.2018    source источник


Ответы (2)


Поскольку вам нужно получить только одно значение, используйте ExecuteScalar(). Пример

string sqlQuery = "select COUNT(*) as rowsCount from employee_leaves where PARTY_ID ='10'";
OracleCommand command = new OracleCommand(sqlQuery, connection);
// other codes here such as opening the connection
int count = Convert.ToInt32(command.ExecuteScalar());
person John Woo    schedule 01.02.2018

Предположим, вы кодируете С #. Пожалуйста, используйте перед dr.Read() (он должен возвращать истину), затем используйте dr для чтения значений из первой строки.

person WesolyPierozek    schedule 01.02.2018