求助delphi中dbgrid显示不了数据库中的表信息

一个adoquery连接到一个adoconnection上,将一个datasource连接到adoquery上,把dbgrid连接到datasource,我在form的onshow事件里面添加代码如下(就是想在界面显示的时候把数据库里面的users表的内容显示到dbgrid里面):
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from users');
ADOQuery1.Open;
但是这样没有任何效果,虽然不报错
请各位指教,谢谢!

第1个回答  2011-05-17
你的dbgrid里有建列吗?列与数据库的Field有对应吗?可以自动设置对应的,你试试追问

我的users表中只有2列,username和password,您的意思是在dbgrid要手动新建2列吗?

追答

是的,然后设定field就行了。。
如果用db控件的话,建议你把sql语句写死在 adoquery上,然后可以直接 create field。在dbgrid设计界面里,有一个横竖条纹的按钮, 你仔细看看整个界面,能找到的,点一下就能直接取到query上的列了。
手动设置也是可以的。

追问

我把dbgrid变成了2列,结果运行还是不行,能不能把具体在哪里写什么代码说一下?非常感谢!

第2个回答  2011-05-17
adoconnection连接信息正确。
在程序将他打开。
不会出现这问题的。追问

adoconnection怎么打开啊?是active吗?还是open?他的connection属性已经设成true了

追答

adoconnection1.Connected:=false; ADOConnection1.ConnectionString:='Provider=MSDASQL.1;Password='+PasswordName+';Persist Security Info=True;User ID='+UserName+';Data Source='+datasource+';Initial Catalog='+datasource;
adoconnection1.Connected:=true;
adoquery2.close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('select * from main order by rq');
adoquery2.ExecSQL;
adoquery2.Open;
这是我程序的连接、打开方式

相似回答