大家好,我是个新人,刚开始学Delphi,如今碰到一个问题
不知道谁能帮我解决一下,不胜感激!
//----------------------
我用Access2000建立一个数据库名为user
Field分别为:序号、用户名、权限、密码。
现在我新建一个Form
然后加入Memo、Query
我就是想把数据库中的内容在Memo中显示出来
格式如下:
 序号  用户名  权限  密码
  1      a      1    x
  2      b      2    y
请问我该用什么方法比较简单?
当然不是直接把所有的Field在代码中写出来
如:
   Query1.Close;
   Query1.SQL.Add('select * from basic_pra');
   Query1.Open;
   Memo1.Lines.Add('基本参数:');
   Memo1.Lines.Add('序号:'+Query1.FieldValues['序号']+'用户名'+Query1.FieldValues['用户名']+'权限'+Query1.FieldValues['权限']+'密码'+Query1.FieldValues['密码']);
这样是可以,对付这种小的数据库是没有问题
可是如果是一个盘大的数据库,总不可能把所有的数据都这样一行一行的写出来吧??

解决方案 »

  1.   

    用DataSource连接dataset,DBGrid连接DataSource
      

  2.   

    谢谢
    不过我的意思是这样的
    我想把这些数据显示在象Memo这样的控件里或是DBMemo控件
    那该怎么办呢
      

  3.   

    Query1.Close;
       Query1.SQL.Add('select * from basic_pra');
       Query1.Open;
    While Not Query1.Eof Do           //利用循环来加
    Begin
       Memo1.Lines.Add('基本参数:');
       Memo1.Lines.Add('序号:'+Query1.FieldValues['序号']+'用户名'+Query1.FieldValues['用户名']+'权限'+Query1.FieldValues['权限']+'密码'+Query1.FieldValues['密码']);
    Next;                         //数据库的值滚动到下一条
    End;
      

  4.   

    是这样啊
    不好意思
    我提错了
    我的意思是那些序号、用户名、权限、密码那些不是直接自己在Memo中写出来
    而是由数据库中的Field中读出来
    我想把所有的Field读出来,并且在每一行的数据中只读出其中的一行,象上面这段代码的话是把所有行都列出来了,这也只能怪我没写清楚,实在不好意思
      

  5.   

    既然是表就应该用dbgrid,干嘛非要用dbmemo呢?
      

  6.   

    不明白你想做什么,不过表中很多列的话你可以使用FieldCount做循环,如:tempstr:='';
    For i := 0 to Query1.FieldCount-1 do begin
      tempstr:=tempstr + Query1.Fields[i].DisplayName+Query1.Fields[i].Values;
    end;
    Memo1.Lines.Add('基本参数:');
    Memo1.Lines.Add(tempstr);只是你要在设计阶段设计用字段编辑器设计好Query1个Field的DisplayName,我觉得意义不大。