C# Crystal reports显示表中的所有行,即使行经过筛选C也是如此#

C# Crystal reports显示表中的所有行,即使行经过筛选C也是如此#,c#,crystal-reports,C#,Crystal Reports,在crystal reports中,即使在不同的查询中,我也总是得到相同的结果 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 OleDbDataAdapte

在crystal reports中,即使在不同的查询中,我也总是得到相同的结果

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


你知道问题出在哪里吗?

经过大量搜索,我找到了答案:

我应该使用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);

可能每次在报告和代码中都需要刷新命令对象。只是猜测。谢谢你的回答,我找到了答案:我应该使用dataSet而不是dataTable