2016-10-02 153 views
-1

我需要从datagridview传输数据到reportviewer。我的代码:datagridview到reportviewer C#

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Microsoft.Reporting.WinForms; 


namespace test 
{ 
    public partial class Form1 : Form 
    { 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

private void button1_Click(object sender, EventArgs e) 
{ 
    //dataGridView1.AutoGenerateColumns = false; 
    dataGridView1.Columns.Add("test"); 
    dataGridView1.Columns.Add("One"); 
    dataGridView1.Columns.Add("two"); 
    dataGridView1.Columns.Add("three"); 
    dataGridView1.Columns.Add("four"); 
    dataGridView1.Columns.Add("five"); 
    dataGridView1.Columns.Add("six"); 
    dataGridView1.Rows.Add("test", "test ", "1", "2", "3", "4"); 
    dataGridView1.Rows.Add(980, 10, 70, 20, 50); 
    dataGridView1.Rows.Add(860, 20, 50, 60, 35); 
    dataGridView1.Rows.Add(950, 80, 35, 30, 40); 
    dataGridView1.Rows.Add(800, 40, 90, 30, 25); 
    dataGridView1.Rows.Add(900, 20, 45, 30, 60); 
    dataGridView1.Rows.Add(300, 20, 20, 20, 20); 
    dataGridView1.Rows.Add("check" , 50, 80, 50, 70); 
    } 
} 

这些引用并没有帮助: How to Pass data table from DataGridView ro ReportViewer

Show data from datagridview to reportviewer C# 如何显示从DataGridView数据的ReportViewer C#?

+1

您可以使用'DataTable'作为'DataGridView'的'DataSource'。然后使用相同的'DataTable'创建一个报告,并将其设置为报告的'DataSource'。 –

+0

我也试过,报告为空。 DataTable table1 = new DataTable(); dataGridView1.DataSource = table1; (“test”); ... DataSet set = new DataSet(); set.DataSetName =“datasetname”; set.Tables.Add(table1); – player

+1

你是'DataGridView'在上面的例子中不使用'DataSource'。您正在向控件直接添加行。使用'DataTable'。 –

回答

0

你试图直接添加到dataGridView。
尝试从IList添加它。

要添加列

DataGridViewColumn columnTime = new DataGridViewTextBoxColumn(); 
        columnTime .DataPropertyName = "Time"; 
        columnTime .Name = "Time:"; 
dataGridView.Columns.Add(columnTime); 

然后

var bindTime= new BindingList<Time>(listTime); 
var sourceTime= new BindingSource(bindTime, null); 
dataGridView.DataSource = sourceTime; 


用同样添加到DataGridView的到的ReportViewer,如果你需要添加新的东西的DataGridView,只是添加到IList刷新DataGrid和ReportViewer
我想这会比添加eac更容易h线单独使用