方法如下:
其它步骤请看前一篇文章
只是在.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 这个值必须是表名,所以没有法子,我写了二个。
不知道有没有什么好的方法。如果有,请你给我留言,十分感谢
此文章只做为自己的代码备份。