2017-08-06 32 views
0

我面临的一个问题,我在报告中获取数据的4倍,因为我填充数据适配器的4倍水晶报表显示的数据多次

这里是我的代码:

MyCommand.CommandType = CommandType.Text; 
myDA.SelectCommand = MyCommand; 
myDA.Fill(myDS, "Stock"); 
myDA.Fill(myDS, "Stock_Product"); 
myDA.Fill(myDS, "Product"); 
myDA.Fill(myDS, "Supplier"); 

rd.Load(@"C:\Users\aliali\Documents\Visual Studio 2013\Projects\GenesysInventory System\GenesysInventory System\rptpurchase.rpt"); 
rd.SetDataSource(myDS); 

frmReport obj = new frmReport(); 
obj.crystalReportViewer1.ReportSource = rd; 
obj.ShowDialog(); 
+0

为什么你需要调用myDA.Fill()4次?当然,你的意思是填写4个表格,然后将表格添加到数据集? – reckface

+0

请举例fotr ref, –

回答

0

的工作流程创建表格,填充表格,然后将它们添加到数据集中,然后将数据集设置为报表数据源。

var dtStock = new DataTable("Stock"); 
MyCommand.CommandType = CommandType.Text; 
myDA.SelectCommand = MyCommand; 
myDA.Fill(dtStock, "Stock"); 
// another command for Stock_Product 
var dtStockProduct =new DataTable("Stock_Product"); 
stockProductDA.SelectCommand = StockProductCommand; 
stockProductDA.Fill(dtStockProduct, "Stock_Product"); 
// fill all the tables 

// finally, add all the tables to your data set 
myDS.Tables.Add(dtStock); 
myDS.Tables.Add(dtStockProduct); 
// continue as normal 
rd.Load(@"C:\Users\aliali\Documents\Visual Studio 2013\Projects\GenesysInventory System\GenesysInventory System\rptpurchase.rpt"); 
rd.SetDataSource(myDS); 

frmReport obj = new frmReport(); 
obj.crystalReportViewer1.ReportSource = rd; 
obj.ShowDialog();