使用从两个不同表中获取的数据创建Crystal报表

时间:2010-03-29 11:20:59

标签: vb.net crystal-reports

我正在使用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','shellom2005@yahoo.fr','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 个答案:

答案 0 :(得分:1)

我的猜测(因为你没有指定你正在使用的数据库引擎)是你没有成功地将varchar staff_id与整数staff_id进行比较。尝试将training.staff_id定义为整数。