一个表有学历,姓名等字段,但都是以字母命名的字段名如学历为xueli,姓名为xingming等,现在想利用一 combobox,在其下拉框中有汉字——学历,姓名等。
如果想combobox选取“学历”时就按学历排序,选取姓名时就按“姓名”排序,怎么实现这个方法呢?希望高手能提供个简便而有快速的代码!
另有两贴:http://expert.csdn.net/Expert/topic/2639/2639860.xml?temp=.3533289 都是这个问题,一直没有搞明白,不知道这个问题谁能点破重要而有关键的地方。实现就送分。
如果想combobox选取“学历”时就按学历排序,选取姓名时就按“姓名”排序,怎么实现这个方法呢?希望高手能提供个简便而有快速的代码!
另有两贴:http://expert.csdn.net/Expert/topic/2639/2639860.xml?temp=.3533289 都是这个问题,一直没有搞明白,不知道这个问题谁能点破重要而有关键的地方。实现就送分。
解决方案 »
- 启动DLL中封装的窗体问题
- 当不符合条件时,不能打开窗体form1,请问怎样实现 ??
- [Fatal Error] Required package 'dxPSdxMVLnkD7' not found
- 我想从A数据库把一表中记录成批拷至B数据库的一表中,这SQL语句怎样写?3Q
- 如何给pchar类型初始化一个16字节的缓冲区?(在线)
- toolbar中的按钮高度由什么控制
- request:com+分布式事件的例子源码(200分)
- DISPLAYFORMAT赋值?
- 如何用DELPHI开发一个NT的服务程序
- 请问怎样得到其他Active Window的焦点的句柄
- 这几个sql语句在delphi中怎么用?
- 200分求一暴难算法,提供方案就给分,在线等
begin
SortStr := '';
if Trim(ComboBox1.Text)='学历' then
SortStr:=' Order by xueli '
else if Trim(ComboBox1.Text)='姓名'then
SortStr:=' Order by xingming ';
with ADOquery1 do
begin
Close;
SQL.clear;
SQL.Add('select * from 表名 '+SortStr);
OPen;
end;
end;
1、在窗体show的时候按照 :显示列名+ " |" + 字段名的格式添加到combox的项目中。注意空格多是为了将后面的英文字段名隐藏起来。
2、选择combox的项目时,用pos函数在combox的text中找"|"(也可以用别的字符,只要容易标记就行了),找到后,拷贝特殊字符后面的字符串。
3、table.sort = 拷贝出来的字符串这种发自很好的,俺一直这样用
添加 ComboBox1的OnChange事件:
procedure TForm1.ComboBox1Change(Sender: TObject);begin
query1.sql.clear;
query1.sql.add('select * from 表名 ');
if Trim(ComboBox1.Text)='学历' then
query1.sql.add('order by xueli ');
if Trim(ComboBox1.Text)='姓名'then
query1.sql.add('order by xingming ');
query1.close;
query1.open;end;