我正在尝试计算和计算C#DataTable中一定范围之间的行数。
我想要响应列中的值介于 25和49 之间的行数(计数)。但是我不知道如何完成以下代码行。
我收到错误"操作数&&不能应用于键入' string'和'字符串' 。我已经尝试将语句转换为Int32但它仍然无法编译。 我怎样才能正确输入这个陈述?
// Populate datatable from the database.
answersDataTable = GetData.getIndividualQuestionResponsesOpenEndedAndRange(questionId);
Int32 range25To49 = Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", "Response > '75'" && "Response < '50'"));
答案 0 :(得分:3)
数据表过滤器语法中的逻辑&&
只是"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"));
答案 1 :(得分:0)
Int32 range25To49 = Convert.ToInt32(answersDataTable.Compute("COUNT(Response)", "Response > 75 AND Response < 50"));