delphi dbGrid显示数据库里面的一张表

delphi 中我想用dbGrid显示数据库里面的一张表 MSSQL数据库
procedure GetAllUser;
begin
FrmUser.ADOQuery1.Close;
FrmUser.ADOQuery1.SQL.Clear;
FrmUser.ADOQuery1.SQL.Add('select * from users');
FrmUser.ADOQuery1.Open;
FrmUser.dbgUser.DataSource:=FrmUser.ADOQuery1.DataSource;
end;

我的代码 为什么 执行了之后没有效果呢》?
FrmUser.ADOQuery1.Close;
FrmUser.ADOQuery1.SQL.Clear;
FrmUser.ADOQuery1.SQL.Add('select * from users');
FrmUser.ADOQuery1.Open;
FrmUser.DataSource1.DataSet:=FrmUser.ADOQuery1;

我这样写了 ,,可还是 不行
是不是要设置 dbgrid的列 啊 ?

    我提供一个最常规的方法吧

    首先,依次添加TADOConnection(con1)、TADOQuery(qry1)、TDataSource(ds1)、TDBGrid(dbgrd1)控件,以一个普通的TButton(btn1)控件作为触发事件,括号内为我自己取的控件名。

    设置qry1的Connection属性为con1,ds1的DataSet属性为qry1,设置dbgrd1的DataSource属性为ds1。

    在con1中的ConnectionString属性中设置数据库连接属性,在qry1的SQL属性中填写SQL查询语句。

    双击btn1控件添加如下事件:

  procedure TForm1.btn1Click(Sender: TObject);

  begin

  con1.Close;

  //可以在con1的属性窗口手动设置,也可以代码动态添加连接,如下是SQL Server的常用连接方式

  //con1.ConnectionString:='Provider=SQLOLEDB.1(这是SQL Server的连接方式);Password=你的数据库密码;Persist Security Info=True;User ID=用户名(sa);Initial Catalog=默认数据库;Data Source=连接名或者别名';

  con1.Open;

  qry1.Close;

  //同con1,它的SQL属性可以手动设置,也可以动态添加

  //qry1.SQL.Add('select * from test');

  qry1.Open;

  qry1.ExecSQL;

  end;

PS:

    这只是用DBGrid显示数据库表的一种方式,确实还有很多别的方法。

    如果你只是单纯的显示一张表的数据,可以把TADOQuery换成TADOTable控件,ds1的DataSet属性相应的做下改变就行了。

    而且你在使用TADOQuery和TADOTable控件时都会看到它们自己也都有ConnectionString属性,你估计会想那直接用这个属性直连数据库多方便,还省去了TADOConnection这个控件,其实不然,我建议你还是用着,不仅仅是一个TADOConnection可以共享给多个控件进行数据库连接,我在自己日常开发的时候发现用TADOTable控件直连数据库表有时会出现一些问题,比如说若你连的那张表有复合索引的时候就会有问题,具体原因比较复杂,谅不详述。

    这是我第一次帮别人回复Delphi的问题,纯手打,若有没解释清楚地地方还可以再问我,大家可以一起学习交流,望采纳。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-06
首先, 你要有个数据库连接(比如:BDE 里面的 DATABASE), 并设置好连接参数

然后, 拖动一个查询(比如:BDE里面的QUERY), 在SQL里面写入(select * from 表), 具体怎么写根据你自己的情况来,
再就是:拖动DATASOURCE到查询下面.(在属性的DATASET里面设置数据集, 就刚才那个QUERY了)
接下来,拖动DBGRID到界面, 设置datasource属性, 选择那个数据源, 最后在代码里面写打开query.open;

就可以了.
第2个回答  2009-11-12
其实连接表你不用写什么代码的啦!设置ADOQuery1的sql属性为:select * from users 。DataSource1的dataset为ADOQuery1,dbGrid的DataSource为DataSource1就可以了!窗体onshow事件写ADOQuery1.action := true; 就得了!
第3个回答  推荐于2018-04-10
空间上面放一个dbgrid,一个ado,一个datasource,datasource指向ado,dbgrid指向datasource,这样就可以了本回答被提问者和网友采纳
第4个回答  2016-03-17
1、先调用数据库 我的是uses DB;
2、然后在data access先添加一个DB控件,然后在属性里找connection,下拉选一个数据库连接;
3、在ADO再添加一个 ADO query 找connection ,下拉选一个数据库连接。
4、双击dbGrid修改里面字段代码 改成数据库里的字段.
新手 勿喷...
相似回答