读书人

Delphi 怎么用DBNavigator对DBGrid内的

发布时间: 2012-04-24 14:15:38 作者: rapoo

Delphi 如何用DBNavigator对DBGrid内的内容进行插入、删除、修改
unit Unit3;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls;

type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.Active:=false;
ADOQuery1.SQL.Add('select * from Flght;');
ADOQuery1.Prepared;
ADOQuery1.Active:=true;
Edit1.Text:='F001';
ComboBox1.Text:='2006';
ComboBox2.Text:='01';
ComboBox3.Text:='01';

end;

procedure TForm3.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select *');
ADOQuery1.SQL.Add('from Flght');
ADOQuery1.SQL.Add('where FltNo='''+Edit1.Text+
'''and FltDate='''+ComboBox1.Text+'-'+
ComboBox2.Text+'-'+ComboBox3.Text+'''');
ADOQuery1.Prepared;
ADOQuery1.Open;
ADOQuery1.Active:=true;

end;

procedure TForm3.Button2Click(Sender: TObject);
begin
close;
end;

procedure TForm3.DBNavigator1Click(Sender: TObject; nbInsert: TNavigateBtn);
begin
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Text:='insert into Flght (FltNo,FltDate,FltBgnSrc,FltEndTgt,FltBgnTime,FltSeatNum,FltPrice,FltDsctNum,FltDsctRate,FltCompany) values(:字段1,:字段2,:字段3,:字段4,:字段5,:字段6,:字段7,:字段8,:字段9,:字段10 )';
ADOQuery.Parameters.ParamByName('字段1').Value:=trim(Edit1.Text);
ADOQuery.Parameters.ParamByName('字段2').Value:=trim(Edit2.Text);
ADOQuery.Parameters.ParamByName('字段3').Value:=trim(Edit3.Text);
ADOQuery.Parameters.ParamByName('字段4').Value:=trim(Edit4.Text);
ADOQuery.Parameters.ParamByName('字段5').Value:=trim(Edit5.Text);
ADOQuery.Parameters.ParamByName('字段6').Value:=trim(Edit6.Text);
ADOQuery.Parameters.ParamByName('字段7').Value:=trim(Edit7.Text);
ADOQuery.Parameters.ParamByName('字段8').Value:=trim(Edit8.Text);
ADOQuery.Parameters.ParamByName('字段9').Value:=trim(Edit9.Text);
ADOQuery.Parameters.ParamByName('字段10').Value:=trim(Edit10.Text);
ADOQuery.ExecSQL;
end;

end.
初学Delphi,才学了两天,对Delphi的一些组件不是很了解,这是一段插入的代码,是我自己根据理解改的,应该有很多错误,求大神指导,最好能帮忙把删除和修改的代码的例子给我参考一下。

[解决办法]
procedure TForm3.FormCreate(Sender: TObject);
begin
ADOQuery1.Close;//ADOQuery1.Active:=false;两者意义相同,
ADOQuery1.SQL.Clear;
ADOQuery1.Active:=false;//前面有CLOSE,此处不能再Active:=false,且位置应该在SQL前面
ADOQuery1.SQL.Add('select * from Flght;');//;这个分号如果是SQL SERVER可能会出错。
ADOQuery1.Prepared;


ADOQuery1.Active:=true;
………………
end;
---------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select *');
ADOQuery1.SQL.Add(' from Flght ');//*与from之间应该有空格,当然WHERE也是
ADOQuery1.SQL.Add('where FltNo='''+Edit1.Text+
'''and FltDate='''+ComboBox1.Text+'-'+ ComboBox2.Text+'-'+ComboBox3.Text+'''');
ADOQuery1.Prepared;
ADOQuery1.Open;//OPEN和Active:=true;功能相同,SO,二者取一即可
ADOQuery1.Active:=true;
---------------------------------------------------------
第三段没有错误
---------------------------------------------------------
删除代码:adoquery1.Delete();//即可删除当前选中的记录
--------------------------------------------------------
修改代码和新增类同,只改SQL语句就可以了
--------------------------------------------------------
ADOQuery.SQL.Text:='update Flght set FltNo =:字段1,FltDate =:字段2,FltBgnSrc=:字段3 where xxx =:xxx ';
[解决办法]
ADOQuery1.SQL.Add();
SQL是一个Tstrings,Add方法是整行添加的,上下行之间可不用空格(因为行之间是有回车换行符的)

上面定义的方法是:
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
下面用的是:
procedure TForm3.DBNavigator1Click(Sender: TObject; nbInsert: TNavigateBtn);

自己改吧
[解决办法]
加个POST即可

读书人网 >.NET

热点推荐