C# 在WinC窗体中处理本地报表时出错

C# 在WinC窗体中处理本地报表时出错,c#,winforms,reporting,rdlc,C#,Winforms,Reporting,Rdlc,我想根据日期生成RDLC报告。我的WindowForm和ReportViewer上有两个DateTimePicker和一个按钮控件。我选择DateTimePickeran中的from和To Date from,然后单击一个按钮,ReportViewer将根据日期从数据库中加载 这是我的存储过程 还有我的C代码 我在ReportViewer的fromDate和toDate中传递了两个参数。当我将程序置于调试状态,检查程序并正常工作时,i-e DataTable会正确返回值,但当它到达SQL参数时,

我想根据日期生成RDLC报告。我的WindowForm和ReportViewer上有两个DateTimePicker和一个按钮控件。我选择DateTimePickeran中的from和To Date from,然后单击一个按钮,ReportViewer将根据日期从数据库中加载

这是我的存储过程

还有我的C代码

我在ReportViewer的fromDate和toDate中传递了两个参数。当我将程序置于调试状态,检查程序并正常工作时,i-e DataTable会正确返回值,但当它到达SQL参数时,会引发异常,在本地报表处理过程中发生错误。我不知道为什么,因为我的报告在根目录中。我还将附加快照。请帮帮我

更新

这是我的数据集,它有两个参数

这是报告数据

这是例外细节


错误是因为以下语句

        new ReportParameter("fromDate",dtpSearchFromDate.Value.Date.ToShortDateString()),
        new ReportParameter("toDate",dtpSearchToDate.Value.Date.ToShortDateString())
必须按照存储过程中的方式写入参数,并且必须考虑大写字母和小写字母。参数应如下所示:

起始日期


ToDate

您需要共享异常详细信息。亲爱的先生,我已经更新了我的问题。我应该分享哪些细节?细节中的内部异常帮助您解决问题。谢谢先生,问题现在已经解决了。。reportViewer1.localReport.Refresh出现问题。我已删除LocalReport并为我解决了它。。
        private void btnSearchBikeSale_Click(object sender, EventArgs e)
    {
        ShowReport();
    }

    private void ShowReport()
    {
        reportViewer1.Reset();
        DataTable dt = GetData(dtpSearchFromDate.Value.Date, dtpSearchToDate.Value.Date);
        ReportDataSource rds = new ReportDataSource("DataSet1", dt);
        reportViewer1.LocalReport.DataSources.Add(rds);
        reportViewer1.LocalReport.ReportPath = @"ReportSaleBikeByDate.rdlc";
        ReportParameter[] rParams = new ReportParameter[] {
            new ReportParameter("fromDate",dtpSearchFromDate.Value.Date.ToShortDateString()),
            new ReportParameter("toDate",dtpSearchToDate.Value.Date.ToShortDateString())
        };
        reportViewer1.LocalReport.SetParameters(rParams);//Error Occured Here
        reportViewer1.LocalReport.Refresh();
    }

    private DataTable GetData(DateTime fromDate , DateTime toDate)
    {
        DataTable dt = new System.Data.DataTable();
        using (SqlConnection con = new SqlConnection(CS))
        {
            SqlCommand cmd = new SqlCommand("spGetBikeSalebyDate",con);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.Add("@FromDate", SqlDbType.DateTime).Value = fromDate;
            cmd.Parameters.Add("@ToDate", SqlDbType.DateTime).Value = toDate;
            SqlDataAdapter ad = new SqlDataAdapter(cmd);
            ad.Fill(dt);
        }
        return dt;
    }
        new ReportParameter("fromDate",dtpSearchFromDate.Value.Date.ToShortDateString()),
        new ReportParameter("toDate",dtpSearchToDate.Value.Date.ToShortDateString())