当然可以:        Dim connstr, sql As String
        Dim conn As SqlConnection
        Dim comm As SqlDataAdapter
        Dim ds As New DataSet()        connstr = strconncetion
        conn = New SqlConnection(connstr)
        'sql = "SELECT * from XTDWBiao   where XTDWBiao.danweidm like '" & Request.QueryString("ID") & "%' order by danweidm"
        'comm = New SqlDataAdapter(sql, conn)        'comm.Fill(ds, "XTDWBiao")        'myR.Load(Server.MapPath("./report/rptXTDW.rpt")) '载入报表,,        sql = "SELECT * from XTDWBiao   where XTDWBiao.danweidm like '" & Request.QueryString("ID") & "%' order by danweidm"
        comm = New SqlDataAdapter(sql, conn)        comm.Fill(ds, "XTDW")        myR.Load(Server.MapPath("XTDW.rpt")) '载入报表        myR.SetDataSource(ds)
        CrystalReportViewer1.ReportSource = myR        CrystalReportViewer1.DataBind()

解决方案 »

  1.   

    多谢. 那么如果此报表所涉及的数据库有两个表呢?下面的myR.SetDataSource()应该怎样改呢? Dim ds As New DataSet()
    comm.Fill(ds, "XTDW")
    myR.SetDataSource(ds)
      

  2.   

    建議你用存儲過程來做
    CrystalDecisions.CrystalReports.Engine.Table myTable;
    CrystalDecisions.Shared.TableLogOnInfo myLogin;
    ReportDocument rpt=new ReportDocument();
    rpt.Load(Server.MapPath("report") +"\\"+ReportName);

    for(int i=0;i<rpt.Database.Tables.Count;i++) 

    myTable=rpt.Database.Tables[i];
    myLogin=myTable.LogOnInfo;
    myLogin.ConnectionInfo.UserID=Session["USER"].ToString();
    myLogin.ConnectionInfo.Password=Session["PASSWORD"].ToString();
    myLogin.ConnectionInfo.ServerName=Session["SERVER"].ToString();
    myLogin.ConnectionInfo.DatabaseName=Session["DATABASE"].ToString();
    myTable.ApplyLogOnInfo(myLogin);
    } ParameterFieldDefinitions pfds=rpt.DataDefinition.ParameterFields; 
    ParameterFieldDefinition  pfd=pfds[0];
    ParameterValues pv=pfd.CurrentValues;
    ParameterDiscreteValue pdv=new ParameterDiscreteValue();
    pdv.Value=strParam;
    pv.Add(pdv);
    pfd.ApplyCurrentValues(pv);

    DiskFileDestinationOptions DiskFile=new DiskFileDestinationOptions();
    DiskFile.DiskFileName=Server.MapPath("temp")+"\\temp.pdf"; try
    {

    rpt.ExportOptions.DestinationOptions=DiskFile; 
    rpt.ExportOptions.ExportFormatType=ExportFormatType.PortableDocFormat;
    rpt.ExportOptions.ExportDestinationType=ExportDestinationType.DiskFile;
    rpt.Export();
    HttpContext.Current.Response.ClearHeaders(); 
    HttpContext.Current.Response.ClearContent(); 
    HttpContext.Current.Response.ContentType = "application/pdf"; 
    HttpContext.Current.Response.WriteFile(Server.MapPath("temp")+"\\temp.pdf"); 
    HttpContext.Current.Response.Flush(); 
    HttpContext.Current.Response.Close(); 
    }
    catch(Exception err)
    {
    lblMsg.Text="Sorry , can not find any record!"+(char)10 + (char)13;
    lblMsg.Text +=err.Message;  }
    }