C # DataTable Count Количество строк в диапазоне - PullRequest
2 голосов
/ 21 марта 2012

Я пытаюсь вычислить и посчитать количество строк внутри таблицы данных C #, которые находятся в определенном диапазоне.

Я хотел бы получить количество (количество) строк, в которых значение в Ответах столбец находится между 25 и 49 .Однако я не уверен, как завершить следующую строку кода.

Я получаю сообщение об ошибке "Невозможно применить операнд && к типу" строка "и" строка ". Я пыталсяпреобразование оператора в Int32, но он по-прежнему не будет компилироваться. Как я могу правильно ввести этот оператор?

// Populate datatable from the database.    
answersDataTable = GetData.getIndividualQuestionResponsesOpenEndedAndRange(questionId);

Int32 range25To49 = Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", "Response > '75'" && "Response < '50'"));

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Логический && в синтаксисе фильтра данных просто "AND", поэтому измените его на:

Int32 range25To49 = 
Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", 
                                         "Response > 75 AND Response < 50"));

Полученная вами ошибка не требует пояснений: вы пытаетесь применить логический && между двумя строковыми фильтрами, то есть "Response > '75'" и "Response < '50'", и, конечно, это невозможно.

Вместо этого вы должны создать фильтр, содержащий оба условия, как показано в моем предыдущем фрагменте кода.

Кроме того, одинарные кавычки вокруг чисел не являются необходимыми (даже если кажется, что они также работают).

РЕДАКТИРОВАТЬ:

Если тип столбца Response не числовой, а строка, вы можете использовать функцию Convert(), например. :

Int32 range25To49 = 
Convert.ToInt32(
answersDataTable.Compute("COUNT(Response)", 
"Convert(Response,'System.Int32') > 75 AND Convert(Response,'System.Int32') < 50"));
0 голосов
/ 21 марта 2012
 Int32 range25To49 = Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", "Response > 75 AND Response < 50"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...