2013-03-11 83 views
0

我想在Visual Studio 2012中开发客户端报告。我的报告可以很好地处理不同的选择标准变量。过滤器中出现多个选定列表值时出现错误。传递值为如何传递多个值来报告查看器数据源

<SelectParameters> 
     <asp:FormParameter DefaultValue="0" FormField="ctl00$MainContent$BasicFilterControls$ddlStartHour" Name="StartHour" /> 
     <asp:FormParameter DefaultValue="0" FormField="ctl00$MainContent$BasicFilterControls$ddlStartMinute" Name="StartMinute" /> 
     <asp:FormParameter DefaultValue="2012-11-01" FormField="ctl00$MainContent$BasicFilterControls$txtStartDate" Name="DateFrom" /> 
     <asp:FormParameter DefaultValue="23" FormField="ctl00$MainContent$BasicFilterControls$ddlEndHour" Name="EndHour" /> 
     <asp:FormParameter DefaultValue="59" FormField="ctl00$MainContent$BasicFilterControls$ddlEndMinute" Name="EndMinute" /> 
     <asp:FormParameter DefaultValue="2012-11-01" FormField="ctl00$MainContent$BasicFilterControls$txtEndDate" Name="DateTo" /> 

     <asp:SessionParameter DefaultValue="5027" Name="AgentList" SessionField="AgentList" /> 
    </SelectParameters> 

查询需要AgentId作为SkillTargetID IN(@AgentList)。当我通过单一的价值5000作品罚款和显示记录。但是当我传递多个值为5000,5001,5002等时出现错误。任何建议将多个值传递给报告查看器。 我曾试图与

5000,5001,5002

'5000', '5001', '5002'

(5000,5001,5002)

( '5000'), ( '5001'),( '5002')

Error

我上的Visual Studio 2012尝试此时,SQL Server 2008 R2和.NET Framework 4.5。

+0

那么..你可以写一些代码或关于你的行为的一些话?你是否创建了'List '并将它传递给数据集?你想在哪里显示这些数据?在桌子上? – Chepene 2013-03-12 07:12:32

+0

我想通过这些值报告观看数据source.I想过去在报告中的观众数据shource过滤器值 当我通过在多选择的值时,这些过滤器工作正常,在AgentList单个值AgentList然后在将nvarchar值转换为数据类型int时将错误答复为失败。 – 2013-03-12 07:15:49

+0

另一个问题呢? – Chepene 2013-03-12 07:16:49

回答

0

西尔我找不到任何妥善的解决办法,但我通过改变数据源的SelectCommand查询解决我的问题。在报告刷新button_click我只是改变MyDataSource.SelectCommand查询为

string AgentIds = "5000,5001,5002"; 
     MyDataSource.SelectComamnd = "Select * from Agent where AgentId IN ('" + AgentIds + "')"; 
     ReportViewer1.LocalReport.Refresh(); 

它的工作原理。如果有人找到一个连击解决方案来为DataSource变量添加多个值,那么请更新我。