目前在学习制作水晶报表,很多问题,在创建CrystalReport的时候后面程序就不执行了,分步调试发现CrystalReport实例没有创建。怎么回事呢?代码如下:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
DataSet1 ds = new DataSet1();
OracleDataAdapter adapter = new OracleDataAdapter("select * from EMP", Connect.getconStr());
adapter.Fill(ds,"EMP");
CrystalReport1 rpt = new CrystalReport1();
rpt.SetDataSource(ds);
this.crystalReportsViewer1.ViewerCore.ReportSource =rpt;
}报表dataset
private void Window_Loaded(object sender, RoutedEventArgs e)
{
DataSet1 ds = new DataSet1();
OracleDataAdapter adapter = new OracleDataAdapter("select * from EMP", Connect.getconStr());
adapter.Fill(ds,"EMP");
CrystalReport1 rpt = new CrystalReport1();
rpt.SetDataSource(ds);
this.crystalReportsViewer1.ViewerCore.ReportSource =rpt;
}报表dataset
解决方案 »
- C# 提取string中的内容并动态生成treeview
- C#问题:请教大家如何保存设置
- public class MyGenericClass<T> where T:IComparable { } 目的?
- 这个C#程序怎么做呢?【在线等,或者咱们一起做】
- 为什么ReadProcessMemory返回的是0
- 在Remoting中,如何判断一个远程对象有无断开呢?
- 请问关于GRIDVIEW分组显示数据的问题·!!
- 要在dataset里逐项地添加多条数据 怎么才可以不覆盖已经有的数据呢?
- BASE64编码
- 关于动态的批量生成控件和动态数组的问题!
- WPF 背景图片 内存消耗大
- 求设计思路:如何实现表单变更?
// 1.首先在项目的该网页对应的文件夹里面添加新项------选择Crystal 报表(默认名称:CrystalReport.rpt)
// 2.在次在项目的该网页对应的文件夹里面添加新项------选择添加数据集(默认为:clumn1,可修改)
// 3.在数据集(默认为:datatable1),右键点属性:添加列(默认为:clumn1,可设置他的名称,默认值,是否设置为主键等。)
// 4.在Crystal 报表中(默认名称:CrystalReport.rpt),选中右键点 数据库专家----在选择项目数据栏目里面的Ado.net数据集,把我们新建的数据库dataset1,添加
// 到右边去。 在回到CrystalReport.rpt的页面上,找到资源字段管理器----->在找到下面的数据库字段,将其拖到左边的页眉中间,即第三栏。 //现在的设计已基本完成,现在在后台写代码实现。只是简单的实例,以后将 讲到如何分页,打印,样式布局等。 SqlConnection con = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ADOStr"].ToString());
//获取数据库连接 con.Open();
//打开连接,记住后面要管理,我这就不用关了。 DataSet1 dsjob = new DataSet1();
//创建水晶报表数据集 SqlDataAdapter sda = new SqlDataAdapter("select * from t_StudentAdmit", con); DataSet ds = new DataSet(); sda.Fill(ds);
//填充数据集,若数据集不为空,才向水晶报表数据集中填充数据.
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
DataRow drjob = dsjob.Tables[0].NewRow();
//创建数据行 drjob["f_FlowID"] = dr["f_FlowID"].ToString();
//drjob["f_FlowID"] 字段一定是水晶报表数据集中的字段。
drjob["f_StudentID"] = dr["f_StudentID"].ToString(); dsjob.Tables[0].Rows.Add(drjob); //填充数据集行.
}
}
CrystalReportSource crysource = new CrystalReportSource();
//水晶报表实例化。 crysource.ReportDocument.Load(Server.MapPath("CReport.rpt"));
//加载水晶报表. crysource.ReportDocument.SetDataSource(dsjob); crysource.DataBind();
//水晶报表绑定数据。 CrystalReportViewer1.ReportSource = crysource;
CrystalReportViewer1.DataBind();
//水晶报表控件获取水晶报表绑定的数据源。 con.Close();参考http://www.cnblogs.com/baohaiqi/archive/2010/09/07/1820199.html
http://www.cnblogs.com/babyt/archive/2005/04/21/142789.html