2010-03-29 60 views
0

使用vb.net我需要從兩個不同的表中獲取數據並以報表的形式顯示。 這是我的兩個表的架構和數據:使用從兩個不同表獲取的數據製作水晶報表

CREATE TABLE personal_details (staff_ID integer PRIMARY KEY, title varchar(10), fn varchar(250), ln varchar(250), mn varchar(250), dob varchar(50), hometown varchar(250), securityno varchar(50), phone varchar(15), phone2 varchar(15), phone3 varchar(15), email varchar(250), address varchar(300), confirmation varchar(50), retirement varchar(50), designation varchar(250), region varchar(250)); 
INSERT INTO personal_details VALUES(1,'Mr.','Selom','AMOUZOU','Kokou','Sunday, March 28, 2010','Ho',7736,'024-747-4883','277-383-8383','027-838-3837','[email protected]','Lapaz Kum Hotel','Sunday, March 28, 2010','Sunday, March 28, 2010','Designeur','Brong Ahafo'); 


CREATE TABLE training(
    training_ID integer primary key NOT NULL, 
    staff_ID varchar(100), 
    training_level varchar (60), 
    school_name varchar(100), 
    start_date varchar(100), end_date varchar(100)); 
INSERT INTO training VALUES(1,1,'Primary School','New School','Feb 1955','May 1973'); 
INSERT INTO training VALUES(2,1,'Middle/JSS','Ipmc','Feb 1955','May 1973'); 

我試着去獲取並從以下方式上表顯示數據:

Dim rpt As New CrystalReport1() 
      Dim da As New SQLiteDataAdapter 
      Dim ds As New presbydbDataSet 
      ds.EnforceConstraints = False 

If conn.State = ConnectionState.Closed Then 
       conn.Open() 
      End If 

Dim cmd As New SQLiteCommand("SELECT p.fn, t.training_level FROM personal_details p INNER JOIN training t ON p.staff_ID = t.staff_ID", conn) 
      cmd.ExecuteNonQuery() 
      da.SelectCommand = cmd 
      da.Fill(ds) 

      rpt.SetDataSource(ds) 
      CrystalReportViewer1.ReportSource = rpt 
      conn.Close() 

我的問題是,沒有顯示在報告除非我從報告中刪除培訓領域或personal_details領域。需要你的幫助。謝謝

回答

1

我的猜測(因爲你沒有指定你正在使用的數據庫引擎)是你沒有成功比較varchar staff_id和整數staff_id。嘗試將training.staff_id定義爲一個整數。

+0

感謝您的回答。我只是將training.staff_ID改爲整數,但仍然如此。我也只是來了一個很好的教程http://vb.net-informations.com/crystal-report/vb.net_crystal_report_from_multiple_tables.htm 我現在讀它。如果我仍然面臨問題將會回覆你。提前致謝 – Selom 2010-03-29 11:54:42