Logon failed.
Details: IM002:[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specifiedError in File C:\WINDOWS\TEMP\{58373049-BB37-4D4C-99C2-924F16BCF1AA}.rpt:
Unable to connect: incorrect log on parameters. 各位大大帮忙看看。转换成Web Application出的错误。以前是Web Site正常运行。

解决方案 »

  1.   

    连接失败,加上这句:
    myreport.SetDatabaseLogon("sa", "sa", "127.0.0.1", "pubs");第二个sa是你数据库sa的密码
    ip:127.0.0.1
    数据库:pubs
      

  2.   

    可以确定不是登录问题虽然报的错误是登录错误。
    只要是在IIS下就会出错。用vs.net2005自己的那个带端口的地址就没问题。怀疑是权限问题。我是固定的文件名阿。怎么变临时了。
      

  3.   

    protected void Page_Load(object sender, EventArgs e)
        {
            string rpt = Request.QueryString["rpt"];
            string rptPath="";
            string serverPath = Server.MapPath("~");
            ReportDocument rptDoc = new ReportDocument();
            ExportOptions exp = new ExportOptions();
            System.IO.Stream st;
            exp.ExportFormatType = ExportFormatType.PortableDocFormat;
            exp.FormatOptions = new PdfRtfWordFormatOptions();
            ExportRequestContext req = new ExportRequestContext();
            req.ExportInfo = exp;
            switch (rpt)
            {
                case "mon1":
                    rptPath = serverPath + @"\CrystalReport\claim2.rpt";
                    break;
                case "mon2":
                    rptPath = serverPath + @"\CrystalReport\MonClaim.rpt";
                    break;
                .......省略N行
                case "Tug Code4":
                    rptPath = serverPath + @"\CrystalReport\JobCostSummaryWithTotalTug.rpt";
                    break;
                default:
                    break;
            }
            rptDoc.Load(rptPath);
            Login(rptDoc);
            Sections crSections;
            ReportObjects crReportObjects;
            SubreportObject crSubreportObject;
            ReportDocument crSubreportDocument;
            crSections = rptDoc.ReportDefinition.Sections;
            foreach (Section crSection in crSections)
            {
                crReportObjects = crSection.ReportObjects;            foreach (ReportObject crReportObject in crReportObjects)
                {
                    if (crReportObject.Kind == ReportObjectKind.SubreportObject)
                    {
                        crSubreportObject = (SubreportObject)crReportObject;
                        crSubreportDocument = crSubreportObject.OpenSubreport(crSubreportObject.SubreportName);
                    }
                }
            }
            st = rptDoc.FormatEngine.ExportToStream(req);
            Response.ClearHeaders();
            Response.ClearContent();
            Response.ContentType = "application/pdf";
            byte[] b = new byte[st.Length];
            st.Read(b, 0, (int)st.Length);
            Response.BinaryWrite(b);
            Response.End();
        }
        protected void Login(CrystalDecisions.CrystalReports.Engine.ReportDocument report)
        {
            
            string userId = "sa";
            string passWord = "sa";
            //Set Database Logon to main report
            foreach (CrystalDecisions.Shared.IConnectionInfo connection in report.DataSourceConnections)
            {
                    connection.SetLogon(userId, passWord);
            }        //Set Database Logon to subreport
            foreach (CrystalDecisions.CrystalReports.Engine.ReportDocument subreport in report.Subreports)
            {
                foreach (CrystalDecisions.Shared.IConnectionInfo connection in subreport.DataSourceConnections)
                {
                        connection.SetLogon(userId, passWord);
                }
            }
        }