无法读取数据集SSRS 2008 R2的下一个数据行

时间:2014-09-29 13:38:59

标签: java ssrs-2008-r2

我尝试使用多值参数运行报告。这是一个非常简单的案例,查询基本上是这样的:

SELECT COLNAME
FROM TABLE
WHERE (COLNAME IN (@PARAM))

在Visual Studio中,我可以运行报告,不会有任何问题。但是,一旦将其上传到报表服务器并从我们的网络应用程序调用,我就会收到以下错误:

Cannot read the next data row for the dataset. System.Data.SqlClient.SqlException: Conversion failed
when converting the nvarchar value '104274,104264' to data type int.     

好的,所以问题很明显。 SSRS不会将参数识别为参数的CSV列表,而是作为一个字符串。我注意到如果我手动将值传递给参数,并在它们之间使用换行符而不是逗号,它就可以工作。但两种情况下的请求URL完全相同:

broken case: POST /ReportServer/Pages/ReportViewer.aspx?%2feval_multi&rs%3aCommand=Render&evalID=104274%2c104264&userID=472 HTTP/1.1\\r\\n
working case:POST /ReportServer/Pages/ReportViewer.aspx?%2feval_multi&rs%3aCommand=Render&evalID=104274%2c104264&userID=472 HTTP/1.1\\r\\n

这是从我们的Java Web应用程序调用的,该应用程序使用对SSRS的GET请求返回HttpServletResponse对象。如何让SSRS理解这些参数是多值的,而不是来自Java的一个字符串(是的,参数在visual studio中被指定为多值)?

1 个答案:

答案 0 :(得分:0)

解决。而不是通过ajax将字符串发送到服务器,我发送了一个字符串数组。似乎SSRS能够更好地理解(即使获取请求仍然相同,请参见图)。