如何在不使用C#数据库的情况下使用datagridview值创建水晶报表?

时间:2010-07-29 07:34:38

标签: c# crystal-reports

我在c#中使用Windows表单应用程序。我喜欢从datagridview值创建水晶报表而不是使用数据库值。我怎么能这样做,是否可以这样做。如何动态地在水晶报表中添加值

2 个答案:

答案 0 :(得分:1)

您可以创建一个DataSet并使用DataGridView中的值填充它。然后,您可以将Crystal Report绑定到DataSet。

有些事情:

DataSet ds = new DataSet();

ds = FetchDataFromGrid();

CrystalReport myReport = new CrystalReport()

myReport.SetDataSource(ds);

crystalReportViewer1.ReportSource = myReport

要从DataGridView检索行,您需要这样的内容:

        DataSet ds = new DataSet();
        DataTable dt = new DataTable();


        foreach (DataGridViewRow  item in this.dataGridView1.Rows)
        {

            DataRow dr = dt.NewRow();

            if (item.DataBoundItem != null)
            {
                dr = (DataRow)((DataRowView)item.DataBoundItem).Row;
                dt.ImportRow(dr);
            }
        }

        ds.Tables.Add(dt);

答案 1 :(得分:0)

   SqlDataAdapter da = new SqlDataAdapter("select * from Sells", con.connection);
   da.SelectCommand.CommandType = CommandType.Text;
   DataSet ds = new DataSet();
   con.connection.Open();
   da.Fill(ds);
   con.connection.Close();
   TotalSellsReport rpt = new TotalSellsReport();
   rpt.SetDataSource(ds);
   SellsPrinting sp = new SellsPrinting();
   sp.crystalReportViewer1.ReportSource = rpt;
   sp.Show();