Crystal报表来自多个表的数据?

时间:2013-04-21 12:27:16

标签: c# crystal-reports

我在程序中有2个表,我正在尝试将这些表中的数据显示到Crystal报表。

  • 表1:student1包含列(名称,RegID,部分,RollNo,性别,DOB,城市,州)

  • 表2:StudentCA列(RegdID,LinuxCA,C#CA,SysCA,CryptoCA,DFCA,模式,总计)

代码:

string query = "SELECT student1.Name, student1.Section, student1.RegID, studentCA.mode, studentCA.LinuxCA, studentCA.C#CA, studentCA.SysCA, studentCA.CryptoCA, studentCA.DFCA FROM studentCA CROSS JOIN student1 studentCA.RegdID = student1.RegID WHERE (student1.RegID = '" + txtRegdID.Text + "')";
objDA.SelectCommand = new SqlCommand(query, conn);

conn.Open();

objDA.SelectCommand.ExecuteNonQuery();
conn.Close();

objDA.Fill(ds);
objCrystal.SetDataSource(ds);

crystalReportViewer1.ReportSource = objCrystal;
crystalReportViewer1.Refresh();

但是此代码在运行时生成 DataSourceException 。 我正在使用.Net framework 4.0和Visual Studio 2010.

我正在使用。\ sqlexpress for database。

它给出了错误:

无法加载数据库信息。

文件错误temp_eda0adfd-c6f7-45be-8440-fcbdcae02975 {289D4323-3A7B-45D7-80EA-345DD8BF7329} .rpt:无法加载数据库信息。

1 个答案:

答案 0 :(得分:0)

您的直接问题可能是由选择studentCA.C#CA引起的 - 字段名称可能包含在RDBMS的相应列引用字符中 - 例如,studentCA.[C#CA]如果您使用的是MS SQLServer。

也就是说,CROSS JOIN可能不是加入这两个表的最佳方式。