Crystal报表显示了表的所有行,即使行是c#过滤的

本文关键字:过滤 显示 报表 Crystal | 更新日期: 2023-09-27 18:14:28

在水晶报告中,我总是得到相同的结果,即使在不同的查询

var command="Select ID,Nam,Family From Info where ID=2";
var connection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb");
var dt=new DataTable();
 using (var da = new OleDbDataAdapter(command, Connect))
            da.Fill(dt);
var report=new Report();//prebuilt report
report.SetDataSource(dt);
CrystalReportViewer.ReportSource=report; 

"dt"有正确的数据,但我不知道为什么报告显示所有的记录

你知道问题在哪里吗?

Crystal报表显示了表的所有行,即使行是c#过滤的

我找到了答案:

我应该使用DataSet而不是DataTable

var command="Select ID,Nam,Family From Info where ID=2";
var connection=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data       Source=data.mdb");
var dt=new DataSet();//Here was the problem
 using (var da = new OleDbDataAdapter(command, Connect))
            da.Fill(dt);
var report=new Report();//prebuilt report
report.SetDataSource(dt);
CrystalReportViewer.ReportSource=report; 

实际上如果你想使用DataTable你应该这样做:

report.Database.Tables[0].SetDataSource(dataTable);