架构是wcf+linq+web service
后台数据库sql 2008怎么调用数据和手动指定report数据字段!

解决方案 »

  1.   


    rv.LocalReport.ReportEmbeddedResource = "c_report.bd5.rdlc";
                rv.LocalReport.DataSources.Clear();
                ClassMyData.DbSystem db = new ClassMyData.DbSystem();
                DataSet ds = db.GetDataSet("SELECT * FROM v_rep_bd5 WHERE cPici='" + _pici + "' AND cParaFileID='" + _cParaFileID + "'");
                //设置数据源
                rv.LocalReport.DataSources.Add(new ReportDataSource("myds", ds.Tables[0]));            //增加参数
                string pici2 = "";
                string cdate = "";
                string qingxi = "";
                string jixiu = "";
                string jianc = "";
                pici2 = "";
                pici2 = db.GetValue("SELECT cpici2 FROM v_canshutable WHERE bd_autoid=45 and cpici='" + _pici + "' AND cParaFileID='" + _cParaFileID + "'");            cdate = db.GetValue("SELECT cvalue1 FROM v_canshutable WHERE bd_autoid=44 and cpici='" + _pici + "' AND cParaFileID='" + _cParaFileID + "'");            try
                {
                    cdate = Convert.ToDateTime(cdate).ToShortDateString();
                }
                catch
                {
                    cdate = DateTime.Now.ToShortDateString();
                }
                qingxi = db.GetValue("SELECT cvalue1 FROM v_canshutable WHERE bd_autoid=45 and cpici='" + _pici + "' AND cParaFileID='" + _cParaFileID + "'");            jixiu = db.GetValue("SELECT cvalue1 FROM v_canshutable WHERE bd_autoid=46 and cpici='" + _pici + "' AND cParaFileID='" + _cParaFileID + "'");            jianc = db.GetValue("SELECT cvalue1 FROM v_canshutable WHERE bd_autoid=47 and cpici='" + _pici + "' AND cParaFileID='" + _cParaFileID + "'");
                string title = db.GetValue("SELECT cParaDefName FROM tb_paraDefine WHERE cParaFileID='" + this.Name + "'");
                ReportParameter t1 = new ReportParameter("title", title);                 ReportParameter rp1 = new ReportParameter("pici2", pici2);
                ReportParameter rp2 = new ReportParameter("cdate", cdate);
                ReportParameter rp3 = new ReportParameter("qingxi", qingxi);
                ReportParameter rp4 = new ReportParameter("jixiu", jixiu);
                ReportParameter rp5 = new ReportParameter("jianc", jianc);
                rv.LocalReport.SetParameters(new ReportParameter[] { rp1, rp2,rp3,rp4,rp5,t1 });            //打开报表
                rv.RefreshReport();
      

  2.   

    谢谢楼上的哥们!我要是直接连接sql server2008没有问题!都可以,但是现在项目架构好了,通过linq web service 来连接数据库,其实不用连接,直接调用就可以了
    我的代码是这样的:this.reportViewer1.LocalReport.DataSources.Clear();
                    this.reportViewer1.LocalReport.ReportEmbeddedResource ="Print_report_module.print_per_addBooks.rdlc";
                    
                    this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("EmployeeInfo", PcurrentEmployeeInfo.ToList()));
                    this.reportViewer1.RefreshReport();
    "EmployeeInfo"这是表名
     PcurrentEmployeeInfo.ToList()这是数据集
    如果在datagridview中邦定的话就这样写:DataGridView1.DataSource = PcurrentEmployeeInfo
    然后数据表格控件就可以列表显示数据了,当然要指定列为各个字段名.
    但是,我在report中指定了字段名,但是就不能载入到reportview中提示找不到没有设置数据集.
    不知为何!郁闷.