Datagrid加入一列显示行号 or 自增列 2012/04/28
来源:互联网 发布:怎么测试80端口 编辑:程序博客网 时间:2024/06/14 20:30
以下这种方法不是很好,很消耗数据库时间,有上万条数据的时候,跑起来很慢,当然与服务器也有一定的关联,暂且用之。
在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 Cruz
2 AMD15433F Ann M Devon
3 A-R89858F Annette Roulet
这样就相当于Recordset加入了此列,当绑定在Datagrid,第一列就会显示相对应的行号。
进阶:
显示employee表fname以M打头的数据的
SQL:SELECT emp_id,fname,lname from employee where fname like 'M%'
显示结果:
MAP77183M Miguel Paolino
MAS70474F Margaret Smith
MFS52347M Martin Sommer
MGK44605M Matti Karttunen
MJP25939M Maria Pontes
M-L67958F Maria Larsson
MMS49649F Mary Saveley
M-P91209M Manuel Pereira
M-R38834F Martine Rance
加入自增列RowId
SQL语句:SELECT Rowid=(SELECT count(*) from Employee where emp_id<=a.emp_id and fname like'M%'),
a.emp_id,a.fname,a.lname FROM employee as a where a.fname like'M%'
显示结果:
1 MAP77183M Miguel Paolino
2 MAS70474F Margaret Smith
3 MFS52347M Martin Sommer
4 MGK44605M Matti Karttunen
5 MJP25939M Maria Pontes
6 M-L67958F Maria Larsson
7 MMS49649F Mary Saveley
8 M-P91209M Manuel Pereira
9 M-R38834F Martine Rance
注意:
1、如没有在生成Rowid的SELECT中加入fname like 'm%' 则,加入的自增列数据将会以employee整个表的数据进行排列,而不会以employee中fname like 'm%'的数据进行自增。
2、这与利用IDENTITY增加一列自增是有差别的。
3、当然最无聊的办法可以去建立一个临时表,对这个临时表数据进行操作,最后在DROP
- Datagrid加入一列显示行号 or 自增列 2012/04/28
- Datagrid加入一列显示行号 or 自增列
- 自义DataGrid列与隐藏一列
- datagrid自增列
- 更改一列为自增列
- EasyUI中,datagrid加载数据后只显示行号,不显示列标题的问题解决方法
- 向自增列加入数据
- DataGrid控件自动显示行号
- Flex4 DataGrid自动显示行号
- FLEX实践—Datagrid保存列模板及自动显示行号
- FLEX 获取DataGrid行号和列好
- GridView自增一列
- 在DataGrid中应用DataGrid的行号作为一列的序号
- VC中加入bookmark及显示行号
- Devexpress的GridControl如何加入行号显示
- group_concat多列数据一列显示用法
- FLEX实践—DATAGRID显示行号
- Flex中显示DataGrid行号(row number)
- C# 根据当前时间获取,本周,本月,本季度等时间段 .Net中Exception
- EXE导出函数及def文件格式说明
- 领域模型系列:贫血、充血模型(非常经典)
- Bluetooth Service Classes and Device Classes
- PHP 文章内容中的关键词加链接
- Datagrid加入一列显示行号 or 自增列 2012/04/28
- .NET ORM框架(一)
- hibernate 对象继承不能乱用
- PHP的一个过滤敏感词或脏话的方法
- Mina网络应用框架及TCP/UDP开发范例(编著)
- 16进制的一些常用转换
- Bluetooth Page scan and Inquiry scan
- NIO学习笔记(一)
- s