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')

错误

我正在 Visual Studio 2012、Sql server 2008 r2 和 .net framework 4.5 上尝试这个。

4

1 回答 1

0

Sill I couldn't find any proper solution but I solve my problem by changing DataSource SelectCommand query. On report refresh button_click I just change MyDataSource.SelectCommand query as

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

and it works. If anyone find a batter solution to add multiple values to DataSource variable then please update me.

于 2013-03-12T11:23:34.010 回答