将组合框项目作为报告日期参数发送到报告中

时间:2015-01-07 10:34:03

标签: c# rdlc

我想从数据库中获取日期值,并将其作为报告参数发送到报告中。但是,如果我现在这样做,我会收到一个错误( 为报告参数提供的值对于其类型日期时间 无效)。我目前正在使用组合框来包含日期列表,我希望将所选项目作为日期参数发送到报告中。我正在使用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();

1 个答案:

答案 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可能会抛出一些异常。