使用PULL方法的非集成验证(SQL验证) TableLogOnInfo objInfo = new TableLogOnInfo();
        ReportDocument objReport = new ReportDocument();
        objReport.Load(MapPath("*/*.rpt"));
        objInfo.ConnectionInfo.ServerName = @".\sqlexpress";
        objInfo.ConnectionInfo.DatabaseName = "数据库名";
        objInfo.ConnectionInfo.UserID = "用户名";
        objInfo.ConnectionInfo.Password = "密码";
        objReport.Database.Tables[0].ApplyLogOnInfo(objInfo);        CrystalReportViewer1.ReportSource = objReport;

解决方案 »

  1.   

    使用的winform做的水晶报表,在报表中要显示3个表中的数据。3个表之间有主外键关系。显示1个表的内容没有问题。只要一选择2个或3个表中不同的字段来显示,就会出现数据库登录对话框,输入相关登录信息提示登录失败,然后报无法将请求提交给后台处理的错误。说得够清楚吗?
    objCon=new SqlConnection("server=.;database=jxcdb;uid=sa;pwd=sa;");
    objCon.Open();
    objDa=new SqlDataAdapter("select purchaseMaster.purchaseID,productName,purchaseUnitPrice,purchaseQuantity,SubTotal,ValueAddTax,Amount,purchaseDate  from purchaseDetail join product on product.productID=purchaseDetail.productID join purchaseMaster on purchaseDetail.purchaseID=purchaseMaster.purchaseID",objCon);
    objDs=new DataSet();
    objDa.Fill(objDs,"purchase");
    purchaseReport.SetDataSource(objDs.Tables["purchase"]);
    crystalReportViewer1.ReportSource=purchaseReport;
      

  2.   

    objReport.Database.Tables[0].ApplyLogOnInfo(objInfo);
    指的是objReport.Database里的第一个表应用此logoninfo,你把所有的表都应用此logoninfo了吗?可以用个foreach循环