我在c#中使用Windows表单应用程序。我喜欢从datagridview值创建水晶报表而不是使用数据库值。我怎么能这样做,是否可以这样做。如何动态地在水晶报表中添加值
答案 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();