我想从数据库中获取日期值,并将其作为报告参数发送到报告中。但是,如果我现在这样做,我会收到一个错误( 为报告参数提供的值对于其类型日期时间 无效)。我目前正在使用组合框来包含日期列表,我希望将所选项目作为日期参数发送到报告中。我正在使用c#,我正在使用rdlc报告文件。这是我的代码。
this.rptStockMismatch.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings["ReportServerURL"]);
this.rptStockMismatch.ShowParameterPrompts = false;
ReportParameter[] reportParameter = new ReportParameter[2];
reportParameter[0] = new ReportParameter("StockCaptureDate", this.cboStockCaptureDate.SelectedItem.ToString()); //this is where I want to insert the selected combobox itme in.
reportParameter[1] = new ReportParameter("DepotID", this.cboDepot.SelectedValue.ToString());
this.rptStockMismatch.ServerReport.SetParameters(reportParameter);
this.rptStockMismatch.RefreshReport();
答案 0 :(得分:0)
我在这里同意POHH。错误消息说你需要一个DateTime对象。
您将SelectedItem转换为字符串。尝试搜索.ToDateTime()函数(如果有)并且如果没有,请尝试编写一个解析字符串的小函数。
//Assuming a Date in this fashion: DD.MM.YYYY
string[] splitDate = cboStockCaptureDate.SelectedItem.ToString()
.Split(".".ToCharArray());
DateTime finalDate = new DateTime(Int32.Parse(splitDate[2]), Int32.Parse(splitDate[1]), Int32.Parse(splitDate[0]));
然后将其添加到ReportParameters。
请注意,如果字符串不是纯数字,Int32.Parse可能会抛出一些异常。