2016-12-14 176 views
1

根据FastReport.Net文档,RegisterData方法已经过载,我可以通过多种方式注册数据。我试图通过下面的代码来注册数据集FastReport.Net。注册数据时出错

 adapter.SelectCommand.CommandText = "SELECT t.* FROM test t"; 
     ds = new DataSet(); 
     adapter.Fill(ds); 

     report1.Load("report1.frx"); 
     report1.RegisterData(ds, "user_ds"); 
     report1.GetDataSource("user_ds").Enabled = true; //Error: Object reference not set to an instance of an object. 
     ((DataBand)report1.FindObject("Data1")).DataSource = report1.GetDataSource("user_ds"); 

     report1.Show(); 

,并得到错误:

Object reference not set to an instance of an object.

,但我得到的成功,当寄存器数据表

 adapter.SelectCommand.CommandText = "SELECT t.* FROM test t"; 
     ds = new DataSet(); 
     adapter.Fill(ds, "test"); 

     report1.Load("report1.frx"); 
     report1.RegisterData(ds.Tables["test"], "user_ds"); 
     report1.GetDataSource("user_ds").Enabled = true; 
     ((DataBand)report1.FindObject("Data1")).DataSource = report1.GetDataSource("user_ds"); 

     report1.Show(); 

为什么我就't注册数据集

回答

0

您需要使用名称中的GetDataSource方法。

例如:

DataSet ds = new DataSet(); 
ds.Tables.Add("test"); 
report1.RegisterData(ds, "user_ds"); 
report1.GetDataSource("test").Enabled = true; // "test", not "user_ds" 
+0

我遇到错误 “(GroupHeader1):错误CS1525:无效的表达术语 '['” 为您的代码...但我有GroupHeader1单TextObject与 “[日期]”和我的代码它的工作 – GrApDev

+0

错误行“report1.Show();” – GrApDev

+0

见[FastReport.Net。数据集的注册](http://stackoverflow.com/questions/41179788/fastreport-net-registration-of-dataset) – GrApDev