数据库是利用vs2008自带的sql2005直接创建的数据库文件cnps.mdf請問各位..我使用 CrystalReport10.5 做報表.卻一直出現以下訊息,輸入sqlserver 的用戶名及密碼,卻一直無法顯示報表...??求救..... 
您请求的报表需要更多信息. 
--------------------------------------------------------------------------------
  cnpsDataSet  
服务器名:    
数据库名:    
用户名:    
密码:    
 使用集成安全性   
   

解决方案 »

  1.   

    在你的调用报表代码里加上这段强制连接数据库        // a b c d 从WEB.Config获取来的数据连接信息
             TableLogOnInfo logininfo = new TableLogOnInfo();
            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;
      

  2.   

    后面少了一句。设置数据连接值后直接加上这句就好了。
    doc.Database.Tables[0].ApplyLogOnInfo(logininfo);
      

  3.   

    别发一个我完整的调用报表代码给你参考一下。protected void Page_Load(object sender, EventArgs e)
        {
            string connStr = ConfigurationSettings.AppSettings["lj"].ToString();
            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);
            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>");
            }    }
      

  4.   

    感谢yangpeiyu ,我用你的代码调试出现如下错误:
    编译器错误消息: CS0246: 找不到类型或命名空间名称“ReportDocument”(是否缺少 using 指令或程序集引用?)源错误: 行 21:         string connStr = ConfigurationSettings.AppSettings["cnpsConnectionString"].ToString();
    行 22:         SqlDataSource datasource = new SqlDataSource(connStr, "select * from cldd");
    行 23:         ReportDocument doc = new ReportDocument();行 24:         TableLogOnInfo logininfo = new TableLogOnInfo();
    行 25:         string path;
     我加上:
    using CrystalDecisions.ReportSource; 
    还是出现上面的错误
      

  5.   

    using CrystalDecisions.Shared;
    using CrystalDecisions.CrystalReports.Engine;
      

  6.   

    非常感谢感谢yangpeiyu ,
    我在web.config里找到appSettings的设置,可里面没有相关的用户名和密码,也没有数据库和服务名,所以提示了最后的错误的 <appSettings>
    <add key="CrystalImageCleaner-AutoStart" value="true"/>
    <add key="CrystalImageCleaner-Sleep" value="60000"/>
    <add key="CrystalImageCleaner-Age" value="120000"/>
    </appSettings>
    我的数据库连接如下:
    <connectionStrings>
    <add name="cnpsConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\cnps.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    索引超出范围。必须为非负值并小于集合大小。
    参数名: index 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
    参数名: index源错误: 
    行 40:         b = System.Configuration.ConfigurationManager.AppSettings[1];
    行 41:         c = System.Configuration.ConfigurationManager.AppSettings[2];
    行 42:         d = System.Configuration.ConfigurationManager.AppSettings[3];行 43:         logininfo.ConnectionInfo.ServerName = a;
    行 44:         logininfo.ConnectionInfo.DatabaseName = b;
     
      

  7.   

    <appSettings>
    <add key="servername" value="."/>
    <add key="database" value="master"/>
    <add key="userid" value="sa"/>
    <add key="pass" value="123456"/>
    <add key="lj" value="Data Source=.;Initial Catalog=fst_center;password=123456;User ID=sa"/>
    <add key="CrystalImageCleaner-AutoStart" value="true"/>
    <add key="CrystalImageCleaner-Sleep" value="60000"/>
    <add key="CrystalImageCleaner-Age" value="120000"/>
    </appSettings>上面的那个你库名,登陆用户,密码。改就可以了。
      

  8.   

    只要就是这三句。在WEB.CONFIG文件的
    appSettings节点里
    <add key="servername" value="."/> 
    <add key="database" value="master"/> 
    <add key="userid" value="sa"/> 
    <add key="pass" value="123456"/> 
    要加上去。因为你那强制连接的数据就从这里获取过来的。------------------------------
    楼主。你那问题是可以解决的啦。来分吧。冲星ing....
      

  9.   

    好         實現了這個功能   很具體 說得     這個是PULL模式的吧