2017-01-10 2 views
1

Я хочу передать DateTimePicker значения для Crystal Report, чтобы показать строки между этими датами я использую этот кодКак передать dateTimePicker значение в Crystal Report в C#?

private void button3_Click(object sender, EventArgs e) 
    { 
     DateTime d1 = Convert.ToDateTime(this.dateTimePicker1.Value.ToShortDateString()); 
     DateTime d2 = Convert.ToDateTime(this.dateTimePicker2.Value.ToShortDateString()); 
     RPT.rpt_all_bocket_transaction myReport = new RPT.rpt_all_bocket_transaction(); 
     myReport.SetParameterValue("@D1",d1); 
     myReport.SetParameterValue("@D2",d2); 
     RPT.frm_rpt myForm = new RPT.frm_rpt(); 
     myForm.crystalReportViewer1.ReportSource = myReport; 
     myForm.ShowDialog(); 
    } 

мое хранятся Proceduer прекрасно работает без отчета кристаллического , но когда я пытаюсь искать между двумя датами я получите эту ошибку

Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX)) 
+0

Недопустимый индекс означает, что, возможно, не существует параметр, который определяется с помощью ключа «@ D1» или «@ D2» ... –

+0

мои параметры хранимой процедуры являются: «@ D1 даты и времени, @ D2 даты и времени» –

+0

Возможный дубликат из [C# Excel interop: Исключение из HRESULT (DISP \ _E \ _BADINDEX)] (http://stackoverflow.com/questions/16851642/c-sharp-excel-interop-exception-from-hresult-disp-e-badindex) –

ответ

1

Ваш код в порядке и действует. Убедитесь, что вы вызываете правильный отчет в своем коде.

RPT.rpt_all_bocket_transaction 

Обязательно проверьте, что ваш отчет связан с правильной процедурой. Я не вижу никаких других ошибок в вашем коде.

+0

моя хранимая процедура была права, но я был вызван другим сообщением с параметром, спасибо –

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