在VB6中,Datagrid控件应该是初学者最喜使用的控件之一,它对数据简单绑定却又往往束缚住手脚。正确的使用的Datagrid必须首先了解它的本质。
Datagrid的本质在于它从来就不是一个真正的网格控件。我们可以片面理解,一个真正的网格控件就是必须将数据脱离Recordset而读进本身的控件。如:Msflexgrid,Mshflexgrid,Spread这些都属于真实的网格控件,我们可以独立的设置这些控见的rows,cols。相反Datagrid,Listview则不属于网格控件。
了解完本质,则可以清楚的知道,因为Datagrid不能将数据读进自身,所以实际它是脱离不了Recordset,则我们需要显示的数据效果,只要操纵Recordset的表现形式就可完成。
Datagrid加入一列显示行号这是论坛中很多次提及的问题。实际上加一列对应的行数,我们只要在Recordset加入一列虚拟的行数。
以pubs中的employee表为示范。
SQL语句为:SELECT * FROM employee
emp_id fname minit lname
PMA42628M Paolo M Accorti
PSA89086M Pedro S Afonso
VPA30890F Victoria P
... ...
当需要加入一列列名为rowid的自增列则可以这样写:
SELECT rowid=(select count( *) FROM employee where emp_id<=a.emp_id), *
FROM employee as a Order by rowid
row_id emp_id fname minit lname
1 A-C71970F Aria C