private void ReportShow()
{
//声明报表
CrystalReport1 myRpt = new CrystalReport1();
//初始化报表内容
DataTable dt1 = new DataTable();
dt1.Columns.Add("aaa");
DataTable dt2 = new DataTable();
dt2.Columns.Add("bbb");
DataSet ds1 = MSPJGetDataSet1();
for (int i = 0; i < ds1.Tables[0].Rows.Count;i++)
{
dt1.Rows.Add();
dt1.Rows[i]["aaa"] = ds1.Tables[0].Rows[i]["aaa"];
}
DataSet ds2 = MSPJGetDataSet2();
for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
dt2.Rows.Add();
dt2.Rows[i]["bbb"] = ds2.Tables[0].Rows[i]["bbb"]; }
myRpt.SetDataSource(dt);
this.crystalReportViewer1.ReportSource = myRpt;有这些了 怎么让dt1和dt2给了dt
{
//声明报表
CrystalReport1 myRpt = new CrystalReport1();
//初始化报表内容
DataTable dt1 = new DataTable();
dt1.Columns.Add("aaa");
DataTable dt2 = new DataTable();
dt2.Columns.Add("bbb");
DataSet ds1 = MSPJGetDataSet1();
for (int i = 0; i < ds1.Tables[0].Rows.Count;i++)
{
dt1.Rows.Add();
dt1.Rows[i]["aaa"] = ds1.Tables[0].Rows[i]["aaa"];
}
DataSet ds2 = MSPJGetDataSet2();
for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
dt2.Rows.Add();
dt2.Rows[i]["bbb"] = ds2.Tables[0].Rows[i]["bbb"]; }
myRpt.SetDataSource(dt);
this.crystalReportViewer1.ReportSource = myRpt;有这些了 怎么让dt1和dt2给了dt
http://msdn.microsoft.com/zh-cn/library/system.data.datatable.merge.aspx.NET Framework 类库
DataTable.Merge 方法 将指定的 DataTable 与当前的 DataTable 合并。
Merge 方法用于合并架构大致相似的两个 DataTable 对象。合并在客户端应用程序上通常用于将数据源中最近的更改合并到现有的 DataTable 中。这使客户端应用程序能够拥有用数据源中的最新数据刷新的 DataTable。 合并操作仅对原始表和要合并的表进行操作。子表不会受到影响或被包括在内。如果某个表具有一个或多个作为关系的一部分定义的子表,则需要分别合并每个子表。
DataTable dt=dt1.Copy();
for (int i = 0; i < dt2.Rows.Count;i++)
{
DataRow row=dt.NewRow();
row["aaa"]=dt2.Rows[i]["bbb"];
dt.Rows.Add(row);
}