2015-09-25 56 views
0

在Crystal Reports我总是甚至在不同的查询Crystal报表显示表中的所有行,即使行过滤C#

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”有正确的数据,但我不知道为什么报告显示所有记录

任何想法的问题是什么?

+0

我,如果你想使用数据表,你应该这样做使用的数据集,而不是数据表

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; 

其实可能需要每次在报告和代码中刷新命令对象。只是猜测。 – aMazing

+0

谢谢你的回答,我找到了答案:而不是dataTable我应该使用dataSet – AliTheOne

回答

0

我找到答案了很多搜索后:

report.Database.Tables[0].SetDataSource(dataTable); 
相关问题