有些时候我们做报表,是多个表进行查询。这怎么处理呢。
方法如下:
其它步骤请看前一篇文章
只是在.xsd文件中,多加入一个表,并且将他们相关联
方法如下:
其它步骤请看前一篇文章
只是在.xsd文件中,多加入一个表,并且将他们相关联
在.aspx文件中代码如下。
SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=chen123;database=C_News;");
conn.Open();
SqlCommand cmd = new SqlCommand("",conn);
//cmd.CommandText = "select * from C_Article a left join C_BigClass b on a.BigClass=b.BigClass";
cmd.CommandText = "select * from C_Article";
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds,"DataSet1");
ds.Tables[0].TableName = "C_Article";
cmd.CommandText = "select * from C_BigClass";
SqlDataAdapter da2 = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds,"DataSet1");
ds.Tables[1].TableName = "C_BigClass";
//ds.Tables[0].TableName = "DataSet1";
CrystalReport1 oCR = new CrystalReport1();
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
this.CrystalReportViewer1.DataBind();
conn.Close();
conn.Open();
SqlCommand cmd = new SqlCommand("",conn);
//cmd.CommandText = "select * from C_Article a left join C_BigClass b on a.BigClass=b.BigClass";
cmd.CommandText = "select * from C_Article";
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds,"DataSet1");
ds.Tables[0].TableName = "C_Article";
cmd.CommandText = "select * from C_BigClass";
SqlDataAdapter da2 = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds,"DataSet1");
ds.Tables[1].TableName = "C_BigClass";
//ds.Tables[0].TableName = "DataSet1";
CrystalReport1 oCR = new CrystalReport1();
oCR.SetDataSource(ds);
this.CrystalReportViewer1.ReportSource = oCR;
this.CrystalReportViewer1.DataBind();
conn.Close();
这里有一个很奇怪的问题,如果我使用left join on把二个表联起来查询。它不好用,因为ds.Tables[1].TableName这个值必须是表名,所以没有法子,我写了二个。
不知道有没有什么好的方法。如果有,请你给我留言,十分感谢
此文章只做为自己的代码备份。