我的数据哪里去了??????????????????????????

GritH2O 2008-09-01 10:30:31
使用水晶报表,动态设置数据源,但是数据不能显示,是什么问题?
代码如下:
private void Form2_Load(object sender, EventArgs e)
{
string sql = "select * from Employees";
string DBConfig_sql = @"Data Source=GRITH2O\SQL2000;Initial Catalog=northwind;User ID=sa;Password=sa";
DataSet ds = new DataSet();
SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
SqlDataAdapter sqlAd = new SqlDataAdapter();
sqlAd.SelectCommand = sqlCmd;
sqlAd.Fill(ds, "Employees");
this.CrystalReport11.Load(Application.StartupPath + "CrystalReport.rpt");

CrystalReport11.SetDataSource(ds.Tables["sql"]);
//{?}中的参数可以不用赋值,即使赋了值也不起作用。
// CrystalReportSource1.ReportDocument.ParameterFields["Parm"].CurrentValues.AddValue("1234567");
// crystalReport1.ParameterFields["Title"].CurrentValues.AddValue("这时推模式的报表样例!");

this.crystalReportViewer1.ReportSource = CrystalReport11;
}

请各位大侠指点!
...全文
107 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
love_cloud 2009-08-21
  • 打赏
  • 举报
回复
赞成一楼的
yuan1238 2009-08-21
  • 打赏
  • 举报
回复
真的,没有连接数据库!!!!!
marhment 2009-08-21
  • 打赏
  • 举报
回复
回答
GritH2O 2008-09-01
  • 打赏
  • 举报
回复
SqlDataAdapter sqlAd = new SqlDataAdapter();
DataAdapter是可以自动管理连接开关的
该变了名字也是不行

CrystalReport11.SetDataSource(ds.Tables["Employees"]);
数据还是显示不出来
JaggerLee 2008-09-01
  • 打赏
  • 举报
回复
顶1楼的!
行者无疆-Kevin 2008-09-01
  • 打赏
  • 举报
回复
CrystalReport11.SetDataSource(ds.Tables[0]);
用0比较好了,DataSet中的表没有命名.
yangpeiyu 2008-09-01
  • 打赏
  • 举报
回复
sqlCon .Open();
CrystalReport11.SetDataSource(ds.Tables["Employees"]);
gh_li 2008-09-01
  • 打赏
  • 举报
回复
CrystalReport11.SetDataSource(ds.Tables["sql"]); 

换成
CrystalReport11.SetDataSource(ds.Tables[sql]); 

试试?
I_am_Z 2008-09-01
  • 打赏
  • 举报
回复
呵呵,少行代码啊,没有打开连接呀!
zt_100094 2008-09-01
  • 打赏
  • 举报
回复
第一个你的连接没有打开,sqlCon .Open();SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
还有你的CrystalReport11.SetDataSource(ds.Tables["sql"]); 中的sql是那里的哟。。应该为Employees吧。
行者无疆-Kevin 2008-09-01
  • 打赏
  • 举报
回复
确认你报表的数据源与数据库中数据源列名和类型都一致,不一致时会显示不出来的.
仔细对照一下.
jietuan 2008-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 woxihuanbiancheng313 的回复:]
第一个你的连接没有打开,sqlCon .Open();SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
还有你的CrystalReport11.SetDataSource(ds.Tables["sql"]); 中的sql是那里的哟。。应该为Employees吧。
[/Quote]

完全正确,你把数据插入到Employees表,但是bind CrystalReport你用的 是sql 表
yinrongg 2008-09-01
  • 打赏
  • 举报
回复

楼上正解
zzyhuian06142 2008-09-01
  • 打赏
  • 举报
回复
CrystalReport11.SetDataSource(ds.Tables["Employees"]);
kbryant 2008-09-01
  • 打赏
  • 举报
回复
帮顶~~
  • 打赏
  • 举报
回复
第一个你的连接没有打开,sqlCon .Open();SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
还有你的CrystalReport11.SetDataSource(ds.Tables["sql"]); 中的sql是那里的哟。。应该为Employees吧。

  • 打赏
  • 举报
回复
CrystalReport11.SetDataSource(ds);
引用的表你在画报表的时候已经引用了吧?直接设置就可以了。
GritH2O 2008-09-01
  • 打赏
  • 举报
回复
private void Form2_Load(object sender, EventArgs e)
{
string sql = "select Employeeid from Employees";
string DBConfig_sql = @"Data Source=GRITH2O\SQL2000;Initial Catalog=northwind;User ID=sa;Password=sa";
DataSet1 ds = new DataSet1();
SqlConnection sqlCon = new SqlConnection(DBConfig_sql);
sqlCon.Open();
SqlCommand sqlCmd = new SqlCommand(sql, sqlCon);
SqlDataAdapter sqlAd = new SqlDataAdapter();
sqlAd.SelectCommand = sqlCmd;
sqlAd.Fill(ds, "Employees");
this.dataGridView1.DataSource = ds.Tables["Employees"];
this.CrystalReport11.Load(@"E:\Projects\WindowsApplication1\WindowsApplication5\CrystalReport1.rpt");

CrystalReport11.SetDataSource(ds.Tables["Employees"]);


this.crystalReportViewer1.ReportSource = CrystalReport11;
}

数据集里有数据,但是在水晶报表里就是显示不出来。。。。。。。。。。。。。。。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧