本文介绍了如何使用SQL 2请求和数据表2中数据显示在水晶报表数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2数据表A和我需要使用SQL 2请求显示水晶报表数据的数据集。于是我在我的数据集创建数据表2(DataTable1和dataTable2)我想这个代码,但它总是执行第二个SQL请求!!



  con.ConnectionString = @连接; 

字符串SQL =MyRequest1;
串SQL1 =MyRequest2;

DataSet1的DS =新的数据集1();

SqlDataAdapter的爸爸=新SqlDataAdapter的(SQL,CON);
SqlDataAdapter的DAD1 =新SqlDataAdapter的(SQL1,CON);

dad.Fill(ds.Tables [DataTable1]);
dad1.Fill(ds.Tables [DataTable2]);

CrystalReport1报告=新CrystalReport1();

report.SetDataSource(ds.Tables [DataTable2]);
report.SetDataSource(ds.Tables [DataTable1]);

crystalReportViewer1.ReportSource =报告;

crystalReportViewer1.Refresh();


解决方案

该解决方案是实现一个DataTable方法为每个数据表在数据集用于:例如,对于第1数据表:

 保护数据表DataTable1()
{
串SQL =MyRequest;
SqlDataAdapter的爸爸=新SqlDataAdapter的(SQL,CON);
DataSet1的DS =新的数据集1();
dad.Fill(ds.Tables [NameOfDataTable]);
DataTable的DT = ds.Tables [NameOfDataTable];
返回DT;

}

和在打印按钮,添加以下代码:

  {试
的DataSet DS =新的DataSet();
DataTable的DT1 = DataTable1()复制()。 //该方法
ds.Tables.Add(DT1)的名称;
CrystalReport1 myreport =新CrystalReport1();
myreport.SetDataSource(DS);
crystalReportViewer1.ReportSource = myreport;

}
赶上(异常前)
{
//代码...
}

它的工作原理成功:)


I have a dataset with 2 datatable aand I need to use 2 sql request to display data in crystal report. So I create 2 datatable in my dataset (DataTable1 and dataTable2) I tried this code but it always execute the second sql request!!

con.ConnectionString = @"connection";

string sql = "MyRequest1";
string sql1 = "MyRequest2";

DataSet1 ds = new DataSet1();  

SqlDataAdapter dad = new SqlDataAdapter(sql, con);
SqlDataAdapter dad1 = new SqlDataAdapter(sql1, con);

dad.Fill(ds.Tables["DataTable1"]);
dad1.Fill(ds.Tables["DataTable2"]);

CrystalReport1 report = new CrystalReport1();

report.SetDataSource(ds.Tables["DataTable2"]);
report.SetDataSource(ds.Tables["DataTable1"]);

crystalReportViewer1.ReportSource = report;

crystalReportViewer1.Refresh();
解决方案

the solution is to implement a Datatable Method for each DataTable used in the Dataset: example for the 1st Datatable:

protected DataTable DataTable1()
    {
        string sql = "MyRequest";
        SqlDataAdapter dad = new SqlDataAdapter(sql, con);
        DataSet1 ds = new DataSet1();
        dad.Fill(ds.Tables["NameOfDataTable"]);
        DataTable dt = ds.Tables["NameOfDataTable"];
        return dt;

    }

and in the print button you add this code:

try {
            DataSet ds = new DataSet();
            DataTable dt1 = DataTable1().Copy(); //the name of the method
            ds.Tables.Add(dt1);
            CrystalReport1 myreport = new CrystalReport1();
            myreport.SetDataSource(ds);
            crystalReportViewer1.ReportSource = myreport;

}
catch (Exception ex)
{
   //code ...
}

It works successfully :)

这篇关于如何使用SQL 2请求和数据表2中数据显示在水晶报表数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 00:22