push模式水晶报表数据源用存储过程没有数据显示?
请问各位:问题如题,代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
SqlDataAdapter da=new SqlDataAdapter ( "recordslist ",ConfigurationSettings.AppSettings[ "dsn "]);
//创建并填充DataSet
DataSet ds=new DataSet ();
da.Fill (ds, "recordslist ");
CrystalDecisions.CrystalReports.Engine.ReportDocument myReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
myReportDocument.Load(Server.MapPath( "CrystalReport1.rpt ")); //装载rpt文件
//设置rpt文件中用到的表的登录信息
CrystalDecisions.Shared.TableLogOnInfo loginfo=new CrystalDecisions.Shared.TableLogOnInfo();
loginfo.ConnectionInfo.UserID= "sa ";
loginfo.ConnectionInfo.Password= " ";
myReportDocument.SetDataSource(ds.Tables[ "recordslist "]);
CrystalReportViewer.ReportSource = myReportDocument;
CrystalReportViewer.DisplayGroupTree = false;
CrystalReportViewer.DataBind(); //绑定显示
//在此处放置用户代码以初始化页面
}
------解决方案--------------------CrystalDecisions.Shared.ConnectionInfo conn= new ConnectionInfo() ;
CrystalDecisions.CrystalReports.Engine.Table myTable;
CrystalDecisions.Shared.TableLogOnInfo myLog;
conn.ServerName = "localhost ";
conn.DatabaseName = "pubs "; //你要連的數據庫
conn.UserID = "sa ";
conn.Password = " ";
for (int i=0;i <myReportDocument.Database.Tables.Count;i++)
{
myTable=myReportDocument.Database.Tables[i];
myLog = myTable.LogOnInfo;
myLog.ConnectionInfo = conn;
myTable.ApplyLogOnInfo(myLog);
myTable.Location = myLog.TableName;
}