2016-12-14 102 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