Номер возврата из набора данных после вызова запроса SELECT COUNT (*) - PullRequest
0 голосов
/ 19 августа 2011

У меня есть этот запрос:

SELECT COUNT(*) From Employees

Я выполняю запрос и получаю следующее:

    public static int GetNumJobs()
{
    clsJobPosting JobPosting = new clsJobPosting();
    DataSet dsJobs = JobPosting.GetNumRows();
    DataTable dtJobs = dsJobs.Tables[0];
    return Convert.ToInt32(dtJobs.Rows[0]);
}

GetNumRows () возвращает набор данных, я хочу вернуть количество строк изэтот запрос, как я могу выполнить это?

Ответы [ 3 ]

0 голосов
/ 19 августа 2011

В вашем случае, dtJobs.Rows["columnName"];, где columnName - это имя столбца, возвращенного из хранимой процедуры.

Также есть несколько предложений кода:

  1. Это также немного вводит в заблуждение, что метод называется GetNumRows(), но вы возвращаете DataSet.Возможно, сделайте его более читабельным, сказав GetJobs или что-то в этом роде.

  2. Вам не нужно добавлять префиксы к именам классов с cls.VS IDE позаботится о предоставлении вам всей необходимой информации несколькими способами.

0 голосов
/ 19 августа 2011

Необходимо указать имя столбца в хранимой процедуре:

SELECT COUNT(*) ItemCount FROM Employees

На заметку, вы действительно не должны использовать COUNT (*). Просто используйте столбец первичного ключа, например:

SELECT COUNT(ItemID) ItemCount FROM Employees

И вместо того, чтобы заполнять это в DataSet и захватывать строку, вы должны использовать скалярное выполнение. Существует много накладных расходов при заполнении набора данных для возврата одного значения.

А в вашем коде:

return dtJobs.Rows[0].Field<int>("ItemCount");
0 голосов
/ 19 августа 2011

попробуйте изменить это

return Convert.ToInt32(dtJobs.Rows[0]);

к этому

return Convert.ToInt32(dtJobs.Rows[0][0]);

Кроме того, почему вы возвращаете DataSet из JobPosting.GetNumRows()? Вы должны вернуть int, чтобы вам не приходилось повторять одну и ту же логику по всему коду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...