2013-10-11 3 views
0

Я хочу показать свои текущие данные datagridview в отчете о кристалле. Для этого я взял две кнопки, сначала нажмите кнопку, чтобы заполнить данные в datagridview. И я хочу, чтобы вторая кнопка нажала на этот экран данных в отчете о кристалле. первый раз я использую хрустальный отчет и не знаю, как справиться с этим. Я много пробовал, но не могу. при нажатии второй кнопки я поставлю следующий код.как показать текущие данные datagridview в отчете кристалла в C#

private void button2_Click(object sender, EventArgs e) 
    { 
     DataSet ds = new DataSet(); 
     DataTable dt = new DataTable(); 
     foreach (DataGridViewColumn col in dataGridView2.Columns) 
     { 
      dt.Columns.Add(col.HeaderText); 
     } 

     foreach (DataGridViewRow row in dataGridView2.Rows) 
     { 
      DataRow dRow = dt.NewRow(); 
      foreach (DataGridViewCell cell in row.Cells) 
      { 
       dRow[cell.ColumnIndex] = cell.Value; 
      } 
      dt.Rows.Add(dRow); 
     } 

     ds.Tables.Add(dt); 

     crystalReportViewer1.ReportSource = ds; 
    } 

Я получаю следующую ошибку на последней строке.

Object reference not set to an instance of an object. 
+0

Почти все случаи 'NullReferenceException' одинаковы. См. «[Что такое исключение NullReferenceException в .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)» для некоторых советов. –

ответ

0

Crystal Report Viewer будет показывать только отчет Crystal Report. Вы не можете просто заполнить набор данных, а затем попытаться показать его в средстве просмотра, вот как работает сетка данных, но не Crystal Report. Вам нужно будет создать Crystal Report, использовать ваши данные в качестве источника, а затем отобразить поля в отчете. Затем вы указываете файл отчета в качестве источника данных для программы просмотра.

Надежда, что помогает,

Крис

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