fsr 发表于 2016-5-12 16:23:50

asp.net ActiveReportsWeb如何动态绑定数据(后台)

本帖最后由 Lenka.Guo 于 2016-5-12 17:16 编辑

asp.net ActiveReportsWeb如何动态绑定数据(后台),有一个dataset数据源如何绑定数据

ZenosZeng 发表于 2016-5-12 16:34:16

这有一篇相似功能的实现介绍文章,文章是按照 7.0 版本写的,但是在 v10中也是一样的。主要是通过 LocateDataSource事件绑定数据源。

http://blog.gcpowertools.com.cn/post/2013/05/17/ActiveReports-PageReport-RunTime-DataSource.aspx

fsr 发表于 2016-5-12 16:58:29

我这样写对吗?
protected void Page_Load(object sender, EventArgs e)
      {

            if (IsPostBack)
            {
                return;
            }

            GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));
            report1.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(WebViewer1_LocateDataSource1);
            WebViewer1.PdfExportOptions.FitWindow = false;
            WebViewer1.PdfExportOptions.DisplayMode = GrapeCity.ActiveReports.Export.Pdf.Section.DisplayMode.Outlines;
            WebViewer1.Report = report1;

      }

protected void WebViewer1_LocateDataSource1(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
         {
             if (args.DataSourceName == "DataSource1")
             {

               if (args.DataSetName == "DataSet1")
               {
                     string strCom = " select top(20)id,borrowId,borrowTitle,borrowMoney,dateline,maxRate,listStatusfrom tb_borrowInfo order by id asc";
                     //创建一个 DataSet对象
                     System.Data.DataSet ds = null;
                     myConn.Open();
                     SqlDataAdapter myCommand = new SqlDataAdapter(strCom, myConn);
                     myCommand.Fill(ds, "tb_borrowInfo");
                     myConn.Close();
                     args.Data = ds;
               }
             }
         }

Lenka.Guo 发表于 2016-5-12 17:13:55

本帖最后由 Lenka.Guo 于 2016-5-12 17:23 编辑

fsr 发表于 2016-5-12 16:58
我这样写对吗?
protected void Page_Load(object sender, EventArgs e)
      {

Page_Load 方法没问题,WebViewer1_LocateDataSource1 中需要args.data 接收的数据是DataTable ,所以必须返回DataTable。可参考以下代码或参考文档:http://www.gcpowertools.com.cn/d ... !Documents/_225.htm

fsr 发表于 2016-5-12 17:22:16


,这是报的错误,难道不可以用SqlConnection连接数据库吗为什么要OleDbConnection ?

Lenka.Guo 发表于 2016-5-12 17:40:35

fsr 发表于 2016-5-12 17:22
,这是报的错误,难道不可以用SqlConnection连接数据库吗为什么要OleDbConnection ?

用SQL connection 能够连接SQL 数据库,就需要将其他连接函数换成SQLClient 相关的,代码如下:
   string myConn = @"Provider=sqloledb; password=123456;data source=30.32.2.88;initial catalog=NWind_CHS;user id=sa;";
         
            string str = " select top(20)id,borrowId,borrowTitle,borrowMoney,dateline,maxRate,listStatus from tb_borrowInfo order by id asc";
            System.Data.SqlClient.SqlConnection conn1 = new System.Data.SqlClient.SqlConnection(myConn);
         
            //创建DataTable   
            DataTable datatable = new DataTable();            
            System.Data.SqlClient.SqlCommand cmdd = new System.Data.SqlClient.SqlCommand(str, conn1);
            System.Data.SqlClient.SqlDataAdapter sqladapter = new System.Data.SqlClient.SqlDataAdapter(cmdd);
            sqladapter.Fill(datatable);
            args.Data = datatable;



fsr 发表于 2016-5-13 10:12:29

昨天我的问题是dt.Columns后面没有Add方法(datatable出了引用using System.Data;之外),必须是这样写才可以System.Data.DataTable,这样就有Add()

Lenka.Guo 发表于 2016-5-13 11:11:04

fsr 发表于 2016-5-13 10:12
昨天我的问题是dt.Columns后面没有Add方法(datatable出了引用using System.Data;之外),必须是这样写才可 ...

解决了就好:hjyzw:
页: [1]
查看完整版本: asp.net ActiveReportsWeb如何动态绑定数据(后台)