代码如下:
string connstr="Password=hnj2007;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=.";
SqlConnection mysqlconn=new SqlConnection(connstr);
mysqlconn.Open();
DataSet mydataset=new DataSet();
SqlDataAdapter myadpter=new SqlDataAdapter("select * from userlist" ,mysqlconn);
myadpter.Fill(mydataset);
CrystalReport2 cr=new CrystalReport2();
cr.SetDataSource(mydataset);
//this.dataGrid1.DataSource=mydataset;
this.crystalReportViewer1.ReportSource=cr;
this.crystalReportViewer1.RefreshReport();
string connstr="Password=hnj2007;Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=.";
SqlConnection mysqlconn=new SqlConnection(connstr);
mysqlconn.Open();
DataSet mydataset=new DataSet();
SqlDataAdapter myadpter=new SqlDataAdapter("select * from userlist" ,mysqlconn);
myadpter.Fill(mydataset);
CrystalReport2 cr=new CrystalReport2();
cr.SetDataSource(mydataset);
//this.dataGrid1.DataSource=mydataset;
this.crystalReportViewer1.ReportSource=cr;
this.crystalReportViewer1.RefreshReport();
string connStr = ConfigurationSettings.AppSettings["lj"].ToString(); //从web.cofig获取连接字符
SqlDataSource datasource = new SqlDataSource(connStr, "select * from yang");
ReportDocument doc = new ReportDocument();
TableLogOnInfo logininfo = new TableLogOnInfo();
string path;
path = Server.MapPath("report1.rpt");
doc.Load(path);
//a, b, c, d从web.cofig获取强制连接的服务器,库,用户,密码,主要用来强制连接
string a, b, c, d;
a = System.Configuration.ConfigurationManager.AppSettings[0];
b = System.Configuration.ConfigurationManager.AppSettings[1];
c = System.Configuration.ConfigurationManager.AppSettings[2];
d = System.Configuration.ConfigurationManager.AppSettings[3];
logininfo.ConnectionInfo.ServerName = a;
logininfo.ConnectionInfo.DatabaseName = b;
logininfo.ConnectionInfo.UserID = c;
logininfo.ConnectionInfo.Password = d; try
{
doc.Database.Tables[0].ApplyLogOnInfo(logininfo);
doc.Database.Tables[0].SetDataSource(datasource.Select(DataSourceSelectArguments.Empty));
CrystalReportViewer1.ReportSource = doc;
}
catch
{
Response.Write("<script>alert('输出报表失败,请检查输入信息或网络!');</script>");
}
这是一个例子,楼主参考一下吧。
this.crystalReportViewer1.RefreshReport();是不是由于这句话你又刷新了,所以看不到数据了!把这句去掉试试!
先确定下以上这些后再试试下面这样!
CrystalReport2 cr=new CrystalReport2();
cr.SetDataSource(mydataset.Tables[0]);
path = Server.MapPath("report1.rpt");
doc.Load(path);
如果按照你上面的代码,这个水晶报表是什么都不会显示的
doc.Load(path);