0

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

  • 表 1:student1带有列(名称、RegID、Section、RollNo、sex、DOB、City、State)

  • 表 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 框架 4.0 和 Visual Studio 2010。

我正在使用 .\sqlexpress 作为数据库。

它给出如下错误:

加载数据库信息失败。

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

4

1 回答 1

0

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

也就是说,CROSS JOIN 可能不是连接两个表的最佳方式。

于 2013-04-21T12:44:08.910 回答