Username: Password:

怎样给DataGrid添加自动增长列-.NET教程,数据库应用
来源:作者: 发布时间:2007-12-25 13:34:29

 

怎样给datagrid添加自动增长列

我想我们都知道在数据库中怎样添加自增长列,我们能够将这个自增长列绑定到datagrid上使得用户方便的知道现在是第几行,今天我介绍一种不用数据库就能够简单显示出自增长列的方法,有人可能会说既然数据库支持我们为什么这样做?我想有如下的两个理由:1、不是任何的表都有自增长列。2、当自增长列不自动复制的时候会出现断号的现象,即使复制这也是有可能发生的。但是先要说明的是这个方法只能显示出来当前页的序号,也就是说假如有分页他只能标记当前这一页的序号。假如要同样实现分页的功能我想使用数据库要比这种方法简单一些,因为假如还是用这个方法那么将要处理状态,这里我不考虑这种方法,但是在文章的结尾我将给出一个数据库的解决方案。
好了下面是正题,首先我们需要在页面里放置一个datagrid。我们用northwind数据库做例子:
html页面的datagrid如下所示:

    
     
      

       
          <%# container.itemindex+1 %>

      

     

     
     
    

   

下面我们能够写他的后台代码cs的文档了我们在他的page_load里面添加绑定方法如下所示:
private void page_load(object sender, system.eventargs e)
  {
   // 在此处放置用户代码以初始化页面
   strconnection = configurationsettings.appsettings["sa"].tostring();
   myconnection = new sqlconnection(strconnection);
   sqldataadapter myadapter = new sqldataadapter("select categoryname, description from categories",myconnection);
// 为了分页方便ds是个全局的变量
   myadapter.fill(ds);
   this.grdtest.datasource = ds.tables[0].defaultview;
   this.grdtest.databind();
}

从上面的过程能够看出我们使用的是表categories,这样我们就能够产生一列自增长的列,此列是从1开始的。假如我们想要一个从0开始的列有该怎么办呢?我们能够把下面的里面的东西换成>就能够了。

假如我们想要实现分页也显示的方法我们将使用datatable的方法来实现,首先我们将datagrid的列全部变成绑定列(为了方便演示,不是必须)。如下所示:


   
    
     
     
     
    

   

在后台我们添加一个函数:
private datatable getrownumbertable(datatable dt){
   datacolumn col = new datacolumn("rownumber",type.gettype("system.int32"));
   dt.columns.add(col);
   for(int i = 0;i<=dt.rows.count-1;i++){
    if(0 == i)
     dt.rows[i][col] = 1;
    else
     dt.rows[i][col] = convert.toint32(dt.rows[i-1][col]) +1;
   }
   return dt;
  }
然后我们将原来数据源改成如下:
this.grdtest.datasource = this.getrownumbertable(ds.tables[0]).defaultview;
这样一来即使分页,数字也是连续的,并且将编号应用于任何的行而不是当前这一页的行。


喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅