我想你查查你的水晶报表拖入字段时的DataSet和连接是不是正确?
我想应该是那个地方的问题。参考:
private  void  BindReport() {
string  strProvider  =  "Server=XAM;DataBase=SealinkWTS;UID=sa;PWD="; RepairReport  oCR  =  new  RepairReport(); DataSet1  ds  =  new  DataSet1(); SqlConnection  MyConn  =  new  SqlConnection(strProvider); MyConn.Open(); string  strSel  =  "Select  *  from  EC_Activity_Repair"; SqlDataAdapter  MyAdapter  =  new  SqlDataAdapter(strSel,MyConn); MyAdapter.Fill(ds,"EC_Activity_Repair"); oCR.SetDataSource(ds); this.crystalReportViewer1.ReportSource  =  oCR; }

解决方案 »

  1.   

    我用的是空的水晶报表,代码和你一样,可是不行.why??????
      

  2.   

    不是连接代码问题,而是:
    我想你查查你的水晶报表拖入字段时的DataSet和连接是不是正确?这个地方很容易出错的。。检查下。
    我想应该是那个地方的问题。
      

  3.   

    private void band()
    {
             sqlConnection1.Open();
    SqlCommand aCommand=new SqlCommand("pro_rep_daysell3",sqlConnection1 ); aCommand.CommandType=CommandType.StoredProcedure;
    aCommand.Parameters.Add(new SqlParameter    ("@name",SqlDbType.NChar ,50,"name"));
    aCommand.Parameters.Add(new SqlParameter("@begindate",SqlDbType.DateTime,0,"begindate"));
    aCommand.Parameters.Add(new SqlParameter("@enddate",SqlDbType.DateTime,0,"enddate"));
    aCommand.UpdatedRowSource=UpdateRowSource.None;
    aCommand.Parameters["@name"].Value= "全体" ;
    aCommand.Parameters["@begindate"].Value= this.Calendar1.SelectedDate ;
    aCommand.Parameters["@enddate"].Value=this.Calendar2.SelectedDate ;
    DataSet ds=new DataSet();
    SqlDataAdapter da= new SqlDataAdapter();
    da.SelectCommand=aCommand;
    da.Fill(ds,"aa");
             WebAppreport1.CrystalReport3 pro =new CrystalReport3 ();
    pro.SetDataSource(ds);
    this.CrystalReportViewer1.ReportSource =pro;
    this.CrystalReportViewer1.DataBind();
    this.CrystalReportViewer1.DisplayPage=true;
    sqlConnection1.Close(); }private void Button1_Click(object sender, System.EventArgs e)
    {

            band();

    }
      

  4.   

    你是写的webform的??这方面我也不熟悉呀。
    在winform中这两句去掉试试。
    this.CrystalReportViewer1.DataBind();
    this.CrystalReportViewer1.DisplayPage=true;
      

  5.   

    把 pro.SetDataSource(ds);
    改成pro.SetDataSource(ds.Tables["aa"]) 试试;
      

  6.   

    private void band()
    {
             sqlConnection1.Open();
    SqlCommand aCommand=new SqlCommand("pro_rep_daysell3",sqlConnection1 ); aCommand.CommandType=CommandType.StoredProcedure;
    aCommand.Parameters.Add(new SqlParameter    ("@name",SqlDbType.NChar ,50,"name"));
    aCommand.Parameters.Add(new SqlParameter("@begindate",SqlDbType.DateTime,0,"begindate"));
    aCommand.Parameters.Add(new SqlParameter("@enddate",SqlDbType.DateTime,0,"enddate"));
    aCommand.UpdatedRowSource=UpdateRowSource.None;
    aCommand.Parameters["@name"].Value= "全体" ;
    aCommand.Parameters["@begindate"].Value= this.Calendar1.SelectedDate ;
    aCommand.Parameters["@enddate"].Value=this.Calendar2.SelectedDate ;
    DataSet ds=new DataSet();
    SqlDataAdapter da= new SqlDataAdapter();
    da.SelectCommand=aCommand;
    da.Fill(ds,"aa");
             WebAppreport1.CrystalReport3 pro =new CrystalReport3 ();
    pro.SetDataSource(ds);
    this.CrystalReportViewer1.ReportSource =pro;
    this.CrystalReportViewer1.DataBind();
    this.CrystalReportViewer1.DisplayPage=true;
    sqlConnection1.Close(); }private void Button1_Click(object sender, System.EventArgs e)
    {

            band();

    }
    你的问题在于引用的DataSet,你的DataSet应为你自己在做设计时的DataSet,不应为C#中的DataSet,这样很难分辨得,建议自己检查,因为你自己键的DataSet默认名字为DataSet1,不为DataSet,问题应该处在这里