吵吵   2012-03-08  阅读:3,778

老实说,很久没有用到delphi之后,很多功能都已经不太熟悉了,折腾了快两个小时,也堪堪才把stringgrid这个列表控件和adorequest数据库控件给搞好了。要实现的功能挺简单,即把数据库中的数据都放到一个列表框里面来。也许控件不是那么好用,号称rad即快速开发平台的delphi也不见的就那么高效了。

以下,有一些delphi的使用技巧,先留下来吧,留作备查。否则每次都忘了之后百度就是很费时间了,谁让搜索引擎已经越来越不给力了呢:
1、stringgrid控件默认的第一列和第一行是用来给你做备注的,所以会有不同的颜色显示,要去除这个显示需要改动属性fixedrows和fixedcols,分别是锁定的函数和列数,改为0就没有锁定的了。

2、stringgrid要实现选定了后一整行都变色,需要在option里面选择gorowselect属性。

3、adorequest实现insert、update、delete可以加入到SQL语句中去,然后执行ExecSQL方法,但是如果是查询值,即用select的话就用open方法打开,之后是ado一个record,可以用RecordCount属性判断有多少条记录,用next方法逐条读取,下面是一段代码:

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
adoquery1:tadoquery;
begin
adoquery1:=tadoquery.Create(nil);
adoquery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + getAppPath()+'db\sperm.mdb';
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from report where getdate>#2012-02-28# order by getdate desc');
adoquery1.Open;
stringgrid1.RowCount:=adoquery1.RecordCount;
for i := 1 to adoquery1.RecordCount do
begin
stringgrid1.Cells[0,i]:=adoquery1.FieldByName('medicalno').AsString;
stringgrid1.Cells[1,i]:=adoquery1.FieldByName('name').AsString;
stringgrid1.Cells[2,i]:=adoquery1.FieldByName('age').AsString;

adoquery1.Next;
end;
adoquery1.Destroy;

end;

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

4条回应:“delphi的stringgrid与数据库”

  1. 编程是一种想法

  2. 青岛葡萄酒说道:

    感觉好复杂的代码啊

  3. 猴子偷桃说道:

    对代码什么的无力啊

  4. 青岛小嫚说道:

    来打个招呼,下午好啊

发表评论

电子邮件地址不会被公开。 必填项已用*标注