C# 在WinC窗体中处理本地报表时出错
我想根据日期生成RDLC报告。我的WindowForm和ReportViewer上有两个DateTimePicker和一个按钮控件。我选择DateTimePickeran中的from和To Date from,然后单击一个按钮,ReportViewer将根据日期从数据库中加载 这是我的存储过程 还有我的C代码 我在ReportViewer的fromDate和toDate中传递了两个参数。当我将程序置于调试状态,检查程序并正常工作时,i-e DataTable会正确返回值,但当它到达SQL参数时,会引发异常,在本地报表处理过程中发生错误。我不知道为什么,因为我的报告在根目录中。我还将附加快照。请帮帮我 更新 这是我的数据集,它有两个参数 这是报告数据 这是例外细节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参数时,
错误是因为以下语句
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())