0

我正在使用 SQL Server 数据库在 C# 中使用 Crystal Reports,我无法继续我的项目,因为我遇到了错误

加载保存报告异常

在我要设置我的水晶报表的数据源的那一行。

任何帮助将不胜感激。

这是我的代码:

SqlConnection con = new SqlConnection();
string conString = @"data source =JR-PC\SQLEXPRESS;initial catalog = election;integrated security =true;";
string sql = "Select can_names,can_pos,partylist,num_votes from tbl_Candidates";

con = new SqlConnection(conString);
con.Open();

SqlDataAdapter da = new SqlDataAdapter(sql, con);
ReportPracice._DATASETS.DataSet1 ds = new ReportPracice._DATASETS.DataSet1();
da.Fill(ds, "tbl_Candidates");

MessageBox.Show(ds.Tables[1].Rows.Count.ToString()); //Returns a value of "40";
con.Close();

ReportPracice._REPORTS.CrystalReport1 rpt = new ReportPracice._REPORTS.CrystalReport1();
rpt.SetDataSource(ds.Tables[1]); //in this line, where I am getting that error.
crystalReportViewer1.ReportSource = rpt;
crystalReportViewer1.Refresh();
4

1 回答 1

0

尝试使用“0”而不是“1”......

C# 索引是从零开始的,而不是从 1 开始的。

ds.Tables[0]

或者

ds.Tables["tbl_Candidates"]

或检查名称

string tName = ds.Tables[1].TableName;

我知道您要在“1”上推出 RowCount。

如有疑问,请执行

string temp = ds.GetXml(); 

并获取 temp 的值并查看它。这总是讲述这个故事。

如果您有一个强类型数据集,那么您不应该使用基数引用。(“0”或“1”等)。使用表的名称。

然后检查报告以查看正在引用的数据集(表)。您可能必须在记事本中打开报告并四处寻找。

您对数据集的表名进行处理的方式是“松散的goosey”,并且某处的名称可能不匹配。

于 2013-06-16T11:04:24.730 回答