Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:09:38
delphi修改数据表中的信息

delphi修改数据表中的信息

修改数据表中的信息

1.用SQL语句UPDATE对数据表中的数据进行修改

SQL语句UPDATE可以对数据进行单个修改,也可以对数据进行批量修改,只要在WHERE子句后面加上适当的条件即可。

下面利用SQL语句UPDATE对数据表中的指定记录进行修改。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TDateTimePicker、TComboBox和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

Close;

SQL.Clear;

SQL.Add('Update MR_Update SET Name= :A,DTime= :B,Sex= :C,Wage= :D

where Id='+Edit1.Text);

Parameters.ParamByName('A').Value:=Edit2.Text;

Parameters.ParamByName('B').Value:=DateToStr(DateTimePicker1.Date);

Parameters.ParamByName('C').value:=ComboBox1.Text;

Parameters.ParamByName('D').Value:=Edit3.Text;

ExecSQL;

end;

2.用Edit方法对数据表中的数据进行修改

对数据进行修改时,可以用TADOQuery组件的Edit方法对当前记录的信息进行修改,FieldByName方法所指定的字段类型必须与表中的字段类型相一致,并用Post方法保存修改后的信息。

下面利用Edit方法对数据表中的当前记录进行修改。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、TDateTimePicker、TComboBox和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

Close;

SQL.Clear;

SQL.Add('Select Id as 编号,Name as 姓名,Sex as 性别,DTime as 工作时间,Wage as 工资 from MR_Update where id='+Edit1.Text);

Open;

Edit; //修改表中的记录

FieldByName('姓名').AsString:=Edit2.Text;

FieldByName('性别').AsString:=ComboBox1.Text;

FieldByName('工作时间').AsDateTime:=DateTimePicker1.Date;

FieldByName('工资').AsCurrency:=StrToInt(Edit3.Text);

Post;

end;

3.批量修改数据

对数据进行批量修改,主要是WHERE子句后面的条件范围,在使用年限对数据进行修改时,直接用日期进行计算,首先要获得年限,可以用YEAR( )函数来获取日期的年份,然后进行计算。如用YEAR(2006-12-1)-YEAR(1986-1-26)所得到的年限为20年。

下面利用SQL语句UPDATE对数据进行批量修改。在获取工龄时,应用YEAR( )函数获取工作时间的年份和当前时间的年份,然后用当前年份减去工作年份,便可获得工龄。

操作步骤如下:

(1)运行Delphi,在窗体中添加TADOConnection、TADOQuery、TDataSource、TButton、和TDBGrid等组件。

(2)主要程序代码如下:

with ADOQuery1 do

begin

Close;

SQL.Clear;

SQL.Add('Update MR_Update SET Wage= Wage+ :A where (year(getdate())-year(DTime))>'+Edit1.Text);

Parameters.ParamByName('A').Value:=Edit2.Text;

ExecSQL;

end;




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759