如题,新手问题,数据库用的ACCESS, 麻烦各位帮忙.

解决方案 »

  1.   

    用WHERE语句查询后,将返回结果集注入报表
      

  2.   

    用一个类处理查询条件,生成sql代码。然后报表窗口写如下代码:
    private void crystalReportViewer1_Load(object sender, EventArgs e)
            {
                search search = new search();                       //引入搜索条件
                //string sql = "select * from sort" + myclass.MyString + " order by  ID, cint(IIid),cint(number2), IIIid";
                string sql =search.MyString;                        DataSet ds = new DataSet();
                OleDbConnection Olecon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\archives.mdb;Persist Security Info=True;Jet OLEDB:Database Password=lcf138170");
                OleDbCommand Olecmd = new OleDbCommand(sql, Olecon);
                OleDbDataAdapter Oleapt = new OleDbDataAdapter();
                Oleapt.SelectCommand = Olecmd;
                Oleapt.Fill(ds, "sql");
                CrystalReport51.Load(Application.StartupPath + "CrystalReport5.rpt");
                CrystalReport51.SetDataSource(ds.Tables["sql"]);
                crystalReportViewer1.ReportSource = CrystalReport51;
    }
      

  3.   

    晕,那个代码是给你参考的。search类是要你自己写的,类名可以自己定义,它是用来把查询条件转换成sql代码并输出的。数据库名和密码要改成你自己的,水晶报表名也要改成你自己的。