我在程序中有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:无法加载数据库信息。
答案 0 :(得分:0)
您的直接问题可能是由选择studentCA.C#CA
引起的 - 字段名称可能包含在RDBMS的相应列引用字符中 - 例如,studentCA.[C#CA]
如果您使用的是MS SQLServer。
也就是说,CROSS JOIN可能不是加入这两个表的最佳方式。