我的开发环境是 vb6.0+sql ,用recordset的Filter属性对记录进行过滤后与datagrid绑定,我想把datagrid的第一列设为自增的序数列,来显示记录的编号,应该怎么办呢?谢谢您,我已经想了很久了也没办法,恳请各位帮帮忙,感激不尽!!:)

解决方案 »

  1.   

    DataGrid本身没有这个功能。如果你非得用DataGrid,只有给记录集里加上一数字字段用来模拟编号。
    最好的办法是不用DataGrid.
      

  2.   

    那怎么添加这个数字字段呢?又怎么让这个字段的数字是逐个增加的?有源代码吗?第一次使用这个datagrid。
    不知道recordset里有没有属性是存放记录的序号的,如果有的话直接和datagrid绑定不就行了吗?
      

  3.   

    如果不用datagrid,有什么可以替代的吗?
      

  4.   

    建个临时表t_temp,用IDENTITY(1,1)命令设置自增序数字段[ID];然后把Filter出来的RECORDSET装入t_temp,DATAGRID绑定该表
      

  5.   

    不知道怎么把Filter出来的RECORDSET装入到t_temp中啊?怎么绑定datagrid?
    下面是我按您的思路写的程序示例,可以帮我指点一下吗?Dim objRS As ADODB.RecordsetCREATE  TABLE t_temp (<列1><数据类型>...);SELECT IDENTITY(int, 1,1) AS ID_Num
    INTO t_temp......
    把Filter出来的RECORDSET装入到t_temp中?
    .....
    Set DataGrid1.DataSource =?
      

  6.   


    <%
    sql="Create TABLE t_temp(" &_
        "ID [int] IDENTITY(1,1),"&_
        "字段1 char(50),"&_
        "字段2 char(50),"&_
        "字段3 char(50),"&_
        '.......
        "字段n char(50))"
     
        conn.execute(sql)'建临时表结束'查询更新
    sql="SELECT 字段1,字段1,字段1,...,字段n INTO t_temp FROM 你要查询的表名 WHERE......"
    conn.execute(sql)'写临时表结束set rs =conn.execute("t_temp")'读临时表
    Set DataGrid1.DataSource=rs   '绑定
    %>
      

  7.   

    谢谢,我明白您的意思,这样做的确能实现!
    我目前做的只连接一次数据库,把所有可能用到的数据都取出来放到recordset里的(为了减少和数据库交互的次数,节省时间),塞选数据的功能完全交给filter来实现的,也不知道这样做的效率是不是很好,如果是这样做的话,怎么把recordset里经过filter塞选出的记录写到t_temp(临时表)里呢?
      

  8.   

    "把所有可能用到的数据都取出来"....
    ---------->数据量小没什么所谓,但是当数据量比较大的时候,效率和开销就会成问题了;当然,你可以不考虑这些;不管你用什么方法,最后总会得到一个记录集合或记录行数组吧;想办法写到t_temp 里
      

  9.   

    恩,你说的开销问题的确是值得考虑的。
    不过,我就是不知道怎么把recordset里的数据写到t_temp 里(filter已被赋值)呢,呵呵,我再查查看,谢谢你哦