【发布时间】:2013-08-28 21:13:47
【问题描述】:
我在 VS 10 中使用 Crystal Report,
我已经添加了数据集。
现在,如果 DataSet 中只有一个表,则显示数据,而如果我添加两个带链接的表,则不显示数据。
我正在从这个 DataSet(XSD) 表中获取字段。
如何解决这个问题。
提前致谢。 基伦
【问题讨论】:
标签: c# sql crystal-reports dataset
我在 VS 10 中使用 Crystal Report,
我已经添加了数据集。
现在,如果 DataSet 中只有一个表,则显示数据,而如果我添加两个带链接的表,则不显示数据。
我正在从这个 DataSet(XSD) 表中获取字段。
如何解决这个问题。
提前致谢。 基伦
【问题讨论】:
标签: c# sql crystal-reports dataset
我习惯做的是;
C#
public partial class Default2 : System.Web.UI.Page
{
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCtr1"].ConnectionString);
SqlConnection cn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCtr2"].ConnectionString);
ReportDocument rdoc = new ReportDocument();
DataTable ds = new DataTable();
DataTable ds1 = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
loadreport();
}
private void loadreport()
{
{
cn.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from [MyTable1] where (Number LIKE '" + DropDownList1.Text + "') ", cn);
da.Fill(ds);
cn.Close();
{
{
cn1.Open();
SqlDataAdapter da1 = new SqlDataAdapter("select * from [MyTable2] where (No LIKE '" + DropDownList1.Text + "') ", cn1);
//DataTable ds1 = new DataTable();
da1.Fill(ds1);
cn1.Close();
}
rdoc.Database.Tables[0].SetDataSource(ds);
rdoc.Database.Tables[1].SetDataSource(ds1);
InvoiceReport.ReportSource = rdoc;
InvoiceReport.DataBind();
}
【讨论】:
您需要绑定您打算使用的 DataTable,而不是绑定整个 DataSet。 这个 SO 答案显示了一个很好的例子:https://stackoverflow.com/a/8341474/283895
(从那篇文章中复制的代码)
ReportDocument rpt = new ReportDocument();
rpt.load();
rpt.Database.Tables[0].SetDataSource(ds.Tables[0]);
this.crystalReportViewer1.ReportSource = rpt;
【讨论】: