C#数据表计数一个范围内的行数
本文关键字:范围内 一个 数据表 | 更新日期: 2023-09-27 18:28:37
我正在尝试计算和计数C#数据表中某个范围内的行数。
我想要Responses列中的值介于25和49之间的行数(计数)。但是,我不确定如何完成下面的代码行。
我收到错误"操作数&&无法应用于类型'string'和'string'。我已尝试将语句转换为Int32,但它仍然无法编译。"。如何正确键入此语句?
// Populate datatable from the database.
answersDataTable = GetData.getIndividualQuestionResponsesOpenEndedAndRange(questionId);
Int32 range25To49 = Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", "Response > '75'" && "Response < '50'"));
数据表筛选器语法中的逻辑&&
只是"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"));
Int32 range25To49 = Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", "Response > 75 AND Response < 50"));