数据库查询的问题,多谢,多谢
我想做一个数据查询程序,数据库中有几种参数,例如a类包括a1,a2,a3,b类包括b1,b2c类包括c1,c2,c3.我想达到的是在文本筐中输入a,则dbgrid中显示a1,a2,a3所有数据,如果输入a1,则只显示a1一列数据,该怎么查询
我用的是query控件.
多谢大家帮忙了
问题点数:100、回复次数:8Top
1 楼zjj_horse(抽烟的鱼)回复于 2002-05-27 20:08:09 得分 0
其实用table的filter,应该是很方便的。
自己看书吧。应该有很多例子的,好象是3月份的电脑编程技巧与维护上的一篇文章介绍的很详细的,可以找来看看。Top
2 楼netlib(河外孤星)回复于 2002-05-27 20:14:27 得分 0
SELECT * FROM TABLE1 WHERE (name LIKE 'a%');
SELECT * FROM TABLE1 WHERE (name LIKE 'a1%');
Top
3 楼hkhurus(野牛哥哥)回复于 2002-05-27 20:18:32 得分 0
同意 netlib(河外孤星)Top
4 楼netlib(河外孤星)回复于 2002-05-27 20:21:11 得分 100
with query1 do
begin
close;
sql.Clear;
sql.add('select * from m111 where name like '''+edit1.Text+'''');
Open;
end;
你只用设置edit1.text就可改了。Top
5 楼zylnull()回复于 2002-05-27 20:30:52 得分 0
多谢诸位大虾
尤其多谢河外孤星 多谢Top
6 楼netlib(河外孤星)回复于 2002-05-27 20:34:39 得分 0
呵呵,不客气,别忘了结账。Top
7 楼netlib(河外孤星)回复于 2002-05-27 20:34:52 得分 0
呵呵,不客气,别忘了结账。Top
8 楼ahuige(灰不遛秋(前半身学医后半身学统计))回复于 2002-05-27 20:56:43 得分 0
问一下,你的a1 a2 a3是列还是行?
看上去象是指的列。如果是列的话,就可以用Tfield的visible属性来控制就行了。
以下的语句经调试通过
procedure TForm1.button1Click(Sender: TObject);
var i:integer;
find:boolean;
begin
find:=false;
for i:=0 to query1.FieldCount-1 do
if not (query1.Fields[i].FieldName=edit1.Text) then
query1.Fields[i].visible:=false
else
begin
find:=true;
query1.Fields[i].visible:=true;
end;
if not find then
for i:=0 to query1.FieldCount-1 do
if query1.Fields[i].FieldName[1]=edit1.Text then
query1.fields[i].Visible:=true;
end;
不过要注意大小写,这里必须大小写一样才行,你想忽略大小写的话,自己处理一下就行了。Top
9 楼ahuige(灰不遛秋(前半身学医后半身学统计))回复于 2002-05-27 21:01:35 得分 0
不好意思,河外孤星老兄,你的方法如果是在字段又有a1,又有a11的情况下就不行了。因为a1已经精确匹配了,但是a11还是要出来,不过,如果发贴子的老兄愿意让两个都出来的话,也就可以了。Top
10 楼ahuige(灰不遛秋(前半身学医后半身学统计))回复于 2002-05-27 21:02:16 得分 0
不好意思,河外孤星老兄,你的方法如果是在字段又有a1,又有a11的情况下就不行了。因为a1已经精确匹配了,但是a11还是要出来,不过,如果发贴子的老兄愿意让两个都出来的话,也就可以了。Top




