现在的位置: 首页 > 综合 > 正文

关于水晶报表的多表显示

2013年12月07日 ⁄ 综合 ⁄ 共 1263字 ⁄ 字号 评论关闭
有些时候我们做报表,是多个表进行查询。这怎么处理呢。
方法如下:
其它步骤请看前一篇文章
只是在.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();

这里有一个很奇怪的问题,如果我使用left join on把二个表联起来查询。它不好用,因为ds.Tables[1].TableName这个值必须是表名,所以没有法子,我写了二个。
不知道有没有什么好的方法。如果有,请你给我留言,十分感谢

此文章只做为自己的代码备份。

抱歉!评论已关闭.