2017-01-19 12 views
-1

Я хочу сгенерировать RDLC Report по дате. У меня есть два DateTimePickers и Button Элементы управления на моем WindowForm и ReportViewer. Я выбираю от и до Date от DateTimePicker, а когда я нажимаю на Button, то ReportViewer должен загружаться с Database на основании Date.Ошибка при обработке локального отчета в C# winforms

Вот мой Stored Procedure

CREATE PROCEDURE spGetBikeSalebyDate 
(
    @FromDate DateTime, 
    @ToDate  DateTime 
) 
AS 
    BEGIN 
     SELECT * FROM tblSaleBike 
     WHERE DateOfPurchase BETWEEN @FromDate AND @ToDate 
     ORDER BY DateOfPurchase asc 
    END 

и мой C# код

 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; 
    } 

Я прошел два параметра в fromDate и toDate в ReportViewer. Когда я помещаю свою программу в debug mood и проверяю программу и отлично работает, i-e DataTable возвращает значения правильно, но когда он достигает SQL Parameters, он выдает exceptionAn error occurred during local report processing. Я не знаю, почему, потому что мой Report находится в root directory. Я также собираюсь привязать снимки. Пожалуйста, помогите мне.

enter image description here enter image description here

Обновлено

Это мой DataSet, который принимает два параметра

enter image description here

и это Report Data

enter image description here

и это Exception Detail

enter image description here

+0

Вы должны разделить сведения об исключении. –

+0

Дорогой сэр, я обновил свой вопрос. Какие детали я должен поделиться? –

+0

Внутреннее исключение в деталях помогает решить проблему. –

ответ

1

Ошибка в том, что следующее утверждение

 new ReportParameter("fromDate",dtpSearchFromDate.Value.Date.ToShortDateString()), 
     new ReportParameter("toDate",dtpSearchToDate.Value.Date.ToShortDateString()) 

должны быть записаны параметры, как в хранимой процедуре и у вас есть принимать во внимание прописные буквы и небольшие буквы. Эти параметры должны быть следующие:

FromDate

ToDate

 Смежные вопросы

  • Нет связанных вопросов^_^