我有如下的一个数据库,数据量大概有1000-2000条,每条分为题目,选项和答案三列:世界四大洋中面积最小的是:         (A)太平洋(B)大西洋(C)印度洋(D)北冰洋            (D)
我国面积最大的湖泊是:             (A)青海湖(B)鄱阳湖(C)洞庭湖(D)太湖              (A)
世界上海拔最高的山是哪座?       (A)乔戈里峰(B)珠穆朗玛峰(C)干城章嘉峰(D)公格尔山峰  (B)
世界国土面积最小的国家是        (A)梵蒂冈(B)摩纳哥(C)瑙鲁(D)图瓦卢                  (A)
我国第一座国家森林公园是:    (A)武夷山(B)长白山(C)张家界(D)九寨沟        (C)
  我想在程序中加入一个文本框,一个数据显示控件,当我在文本框中输入"我"和"国"的时候数据控件中显示第二和第四条记录,当我再继续输入"面"的时候数据控件中就只剩下第二条记录了.同样的,当我输入"世"和"界"时,数据控件中显示1,3,4一共三条记录,当我再输入"四"时则显示第一条记录,若我输入的不是"四"而是"国"时,则显示第四条记录.
  请问这种情况如何编写程序,用什么数据控件?
  谢谢!

解决方案 »

  1.   

    可以在文本框的onchange事件里面写一个模糊查询,然后用数据显示控件显示出来
      

  2.   

    用ADOQuery控件
    procedure TForm1.Edit1Change(Sender: TObject);
    var
    sql : string;
    begin
    sql := 'select * from 题目答案 where 题目 like '''+ Edit1.Text + '%''';
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(sql);
    ADOQuery1.Open;
    end;
      

  3.   

    楼上的方法可行
    procedure TForm1.Edit1Change(Sender: TObject);
    var
        sql : string;
    begin
        sql := 'select * from 题目答案 where 题目 like '''+ TEdit(Sender).Text + '%''';
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(sql);
        ADOQuery1.Open;
    end;
    ///////////////////数据显示控件连接到adoquery1即可