首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

aspnetpager在使用强类型的数据集的有关问题。vs2005中,小弟我在吴老师的留言簿上留了言,可是吴老师还没说清楚

2012-03-13 
aspnetpager在使用强类型的数据集的问题。vs2005中,我在吴老师的留言簿上留了言,可是吴老师还没说清楚。vs20

aspnetpager在使用强类型的数据集的问题。vs2005中,我在吴老师的留言簿上留了言,可是吴老师还没说清楚。
vs2005中,原来我是这样用的aspnetpager,这样也能用,使用access数据库
  protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                conn   =   new   OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   +   this.Server.MapPath( "App_Data/NWIND.mdb "));
                if   (!Page.IsPostBack)
                {
                        cmd   =   new   OleDbCommand( "select   count(EmployeeID)   from   Employees ",   conn);
                        conn.Open();
                        pager.RecordCount   =   (int)cmd.ExecuteScalar();
                        conn.Close();
                        BindData();
                       
                }

        }
        void   BindData()
        {

                cmd   =   new   OleDbCommand( "select   EmployeeID,LastName,FirstName   from   Employees ",   conn);
                  OleDbDataAdapter   adapter   =   new   OleDbDataAdapter(cmd);  
                DataSet   ds   =   new   DataSet();
                adapter.Fill(ds,   pager.PageSize   *   (pager.CurrentPageIndex   -   1),   pager.PageSize,   "Employees ");
                GridView1.DataSource   =   ds.Tables[ "Employees "];
                GridView1.DataBind();
                pager.CustomInfoText   =   "记录总数: <font   color=\ "blue\ "> <b> "   +   pager.RecordCount.ToString()   +   " </b> </font> ";
                pager.CustomInfoText   +=   "   总页数: <font   color=\ "blue\ "> <b> "   +   pager.PageCount.ToString()   +   " </b> </font> ";
                pager.CustomInfoText   +=   "   当前页: <font   color=\ "red\ "> <b> "   +   pager.CurrentPageIndex.ToString()   +   " </b> </font> ";
        }

但现在我用vs2005的强类型的生成的数据集
emploeesDataSet2TableAdapters.EmployeesTableAdapter   ta   =   new   emploeesDataSet2TableAdapters.EmployeesTableAdapter();
ta有ta.ScalarQuery()这样方法得到总记录数,
也有ta.GetData()得到整个数据集。
但我不知如何编写BindData()函数了。
主要是这几句如何改成用ta.GetData()就方便了。主要是ta.GetData()是得到所有数据,没有过滤掉不显示的数据。全部都显示出来了。
cmd   =   new   OleDbCommand( "select   EmployeeID,LastName,FirstName   from   Employees ",   conn);


                  OleDbDataAdapter   adapter   =   new   OleDbDataAdapter(cmd);  
                DataSet   ds   =   new   DataSet();
                adapter.Fill(ds,   pager.PageSize   *   (pager.CurrentPageIndex   -   1),   pager.PageSize,   "Employees ");
                GridView1.DataSource   =   ds.Tables[ "Employees "];


[解决办法]
还没有用过DataTableAdapter,这个也应该可以填充数据集吧?这样的话就和原来没有区别,不过填充的是你自己声明的强类型的数据集而已,你用GetData()方法取的是所有数据,无法实现过滤,那就无法实现分页效果了
[解决办法]
vs2005中有个PagedDataSource,也没用熟,不知道这个是否可以用在其中。
===============>
可以,看我的示例,很多地方就是用这个类实现分页的

热点排行