Delphi对access或SQL数据库增删查改的 *** 作

Delphi对access或SQL数据库增删查改的 *** 作,第1张

procedure TEmpManageForm_frmButton1Click(Sender: TObject);

var

EMPID:string;

begin

if edit1Text='' then

begin

showmessage('请输入员工编号!');

exit;

end;

EMPID:=edit1Text;

DataModado2Close;

DataModado2SQLClear;

DataModado2SQLadd('select 员工编号 from 员工信息 where 员工编号='''+EMPID+'''');

DataModado2Open;

if DataModado2RecordCount >=1 then

begin

showmessage('该员工编号已存在!');

exit;

end;

try

DataModado2Close;

DataModado2SQLClear;

DataModado2SQLadd('insert into 员工信息 ');

DataModado2SQLadd('(员工编号,姓名,生日,性别,手机,籍贯,电话,邮编,地址,身份z号,备注,密码) Values (');

DataModado2SQLadd(''''+edit1Text+''',');

DataModado2SQLadd(''''+edit2Text+''',');

DataModado2SQLadd(''''+datetostr(DateTimePicker1DateTime)+''',');

DataModado2SQLadd(''''+edit4Text+''',');

DataModado2SQLadd(''''+edit5Text+''',');

DataModado2SQLadd(''''+edit6Text+''',');

DataModado2SQLadd(''''+edit7Text+''',');

DataModado2SQLadd(''''+edit8Text+''',');

DataModado2SQLadd(''''+edit12Text+''',');

DataModado2SQLadd(''''+edit11Text+''',');

DataModado2SQLadd(''''+memo1Text+''',');

DataModado2SQLadd(''''+edit9Text+''')');

DataModado2ExecSQL;

ApplicationProcessMessages;

showmessage('员工添加成功!');

DBGrid1Refresh;

except

showmessage('添加员工时出现错误,请核对数据是否正确!');

end;

DBGrid1Refresh;

ApplicationProcessMessages;

DataModado1Close;

ApplicationProcessMessages;

DataModado1SQLClear;

DataModado1SQLadd('select 员工编号,姓名,生日,性别,籍贯,地址,电话,手机,身份z号,邮编,备注 from 员工信息');

DataModado1Open;

ApplicationProcessMessages;

DBGrid1DataSource :=DataModDS1;

ApplicationProcessMessages;

end;

//--------------------以上是添加 *** 作----------------------//

//--------------------以下是删除 *** 作----------------------//

procedure TEmpManageForm_frmButton3Click(Sender: TObject);

var

EMPID:string;

begin

if edit1Text ='' then

begin

showmessage('请选择要删除的员工!');

exit;

end;

EMPID:=edit1Text;

DataModado2Close;

DataModado2SQLClear;

DataModado2SQLadd('select 员工编号 from 员工信息 where 员工编号='''+EMPID+'''');

DataModado2Open;

if DataModado2RecordCount <=0 then

begin

showmessage('该员工编号不存在!');

exit;

end;

try

DataModado2Close;

DataModado2SQLClear;

DataModado2SQLadd('delete from 员工信息 where 员工编号='''+edit1Text+'''');

DataModado2ExecSQL;

ApplicationProcessMessages;

showmessage('员工删除成功!');

DBGrid1Refresh;

DataModado2Close;

DataModado2SQLClear;

DataModado2SQLadd('delete from 员工权限 where 员工编号='''+edit1Text+'''');

DataModado2ExecSQL;

except

showmessage('删除员工时出现错误,请核对数据是否正确!');

end;

DBGrid1Refresh;

ApplicationProcessMessages;

DataModado1Close;

ApplicationProcessMessages;

DataModado1SQLClear;

DataModado1SQLadd('select 员工编号,姓名,生日,性别,籍贯,地址,电话,手机,身份z号,邮编,备注,解禁时间 from 员工信息');

DataModado1Open;

ApplicationProcessMessages;

DBGrid1DataSource :=DataModDs1;

ApplicationProcessMessages;

end;

1: EDIT1TEXT:=DBGrid1DataSourceDataSetRecordCount;

2:先声明一个全局的REAL类型的变量,假如叫tmp_total,在你的DBGRID的数据集控件的BeforeOpen事件中写入tmp_total:=0;如果你做过用FILTER来过滤结果集合的话,那在数据集控件的OnFilterRecord事件中也加入tmp_total:=0;如下面第三个问题那样在你需要累加的CPD_Money字段的OnGetText事件写入如下代码:

tmp_total:=tmp_total+senderAsFloat;

EDIT2TEXT:=floattostr(tmp_total);

这种做法就能自动求到你要的和,要不然你也可以用循环的方式求,稍微麻烦点点

3:不管你的DBGRID用的是是TABLE,QUERY,还是ADO的数据集控件,双击,然后右键添加所有字段,你可以把不需要显示的字段删除掉或者设置其VISIBLE属性为FALSE,选中你要转换显示的字段,也就是TYPE这个字段,在其OnGetText事件中写入下面的代码:

if senderAsString='0' then

text:='超级用户'

else if senderAsString='1' then

text:='一般用户'

else

text:=senderAsString;

adoquery1SQLAdd('delete from jsj where id ='+id);

----这一句的id是要将变量id的字符串值放在此处,且要用单引号括起来,可改为:

adoquery1SQLAdd('delete from jsj where id =' + '''' + id + '''');

delete不需要加Post。

删除前要判断表中是否有数据

if tbRecordCount>0 then

tbdelete;

如果数据集使用的dbexpress中的TSimpleDataSet,或者是TClientDataSet, 要提交时需要添加

tbapplyUpdates(-1);

其实不用那么复杂

1放一个 Adoconnection1到 表单上,设置好数据连接字符串 并 设置 connected 属性 为 true

2 设置 adoquery1的connection 属性为 adoconnection1

3 设置 adoquery1的 sql 属性为 select from 表名

4 设置 adoquery1的 active =true

5 设置 datasource1的dataset 属性为 adoquery1

6再放一个 DBNavigator1 设置 datasource=datasource1

7设置 dbgrid1的 datasource=datasource1

保存 运行 即可注 dbnavigator 控件 中有自带代码 可实现 添加,删除,修改等

要用代码 如下:

一、ADOTable对数据表的 *** 作:

增加、修改与删除:(以线路管理为例)

1、增加:

procedure TForm7Button1Click(Sender: TObject);

begin

ADOTable1TableName:='线路管理';

ADOTable1Close;

ADOTable1Open;

adotable1Edit;

adotable1Insert;

adotable1Fields[1]AsString:=edit1Text;

adotable1Fields[2]AsString:=edit2Text;

adotable1Fields[3]AsString:=edit3Text;

adotable1Post;

end;

2、修改:

procedure TForm7Button2Click(Sender: TObject);

begin

adotable1Edit;

adotable1FieldByName('线路编号')AsString:=trim(edit1Text);

adotable1FieldByName('线路名称')AsString:=trim(edit2Text);

adotable1FieldByName('备注')AsString:=trim(edit3Text);

end;

3、删除:

procedure TForm7Button3Click(Sender: TObject);

begin

if ApplicationMessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then

begin

try

ADOTable1Delete;

ApplicationMessageBox('删除成功','提示',64);

except

ApplicationMessageBox('系统出错','提示',64);

end;

end;

end;

二、adoquery对数据库的增加,查询,编辑,删除:

1、增加:

procedure TForm8Button1Click(Sender: TObject);

begin

ADOQuery1Close;

ADOQuery1Open;

ADOQuery1Edit;

ADOQuery1Insert;

ADOQuery1Fields[0]AsString:=edit1Text;

ADOQuery1Fields[1]AsString:=edit2Text;

ADOQuery1Fields[2]AsString:=edit3Text;

ADOQuery1Fields[3]AsString:=edit3Text;

ADOQuery1Fields[4]AsString:=edit3Text;

ADOQuery1Fields[5]AsString:=edit3Text;

ADOQuery1Fields[6]AsString:=edit3Text;

ADOQuery1Post;

end;

2、查询:

procedure TForm8Button2Click(Sender: TObject);

begin

with ADOQuery1 do

begin

close;

sqlclear;

sqladd('select from 班次管理 where 班次编号='''+edit1text+'''or 班次名称='''+edit2text+''' or 开始时间='''+edit3text+''' or 结束时间='''+edit4text+''' or 零点之前数据流向='''+edit5text+''' or 零点之后数据流向='''+edit6text+''' or 备注='''+edit7text+''''); //书写SQL语句时的格式很重要

open;

if dbgrid1DataSourceDataSetIsEmpty then //判断查询结果是否为空

begin

showmessage('输入错误!');

adoquery1Close;

adoquery1SQLClear;

adoquery1sqlAdd('select from 班次管理');

adoquery1Open;

end;

end;

end;

3、更改:

procedure TForm8Button3Click(Sender: TObject);

begin

adoquery1Edit;

adoquery1FieldByName('班次名称')AsString:=trim(edit2Text);

adoquery1FieldByName('开始时间')AsString:=trim(edit3Text);

adoquery1FieldByName('结束时间')AsString:=trim(edit4Text);

adoquery1FieldByName('零点之前数据流向')AsString:=trim(edit5Text);

adoquery1FieldByName('零点之后数据流向')AsString:=trim(edit6Text);

adoquery1FieldByName('备注')AsString:=trim(edit7Text);

adoquery1Append;

end;

4、删除:

procedure TForm8Button4Click(Sender: TObject);

begin

if ApplicationMessageBox('确实要删除当前数据吗?','提示',mb_YesNo)=ID_Yes then

begin

try

adoquery1Delete;

ApplicationMessageBox('删除成功','提示',64);

except

ApplicationMessageBox('系统出错','提示',64);

end;

adoquery1SQLClear; //刷新DBGRID 中显示的内容

adoquery1SQLAdd('select from 班次管理');

adoquery1Open;

end;

end;

5、显示全部:

procedure TForm8Button5Click(Sender: TObject);

begin

with ADOQuery1 do

begin

close;

sqlclear;

sqladd('select from 班次管理');

open;

end;

end;

以上就是关于Delphi对access或SQL数据库增删查改的 *** 作全部的内容,包括:Delphi对access或SQL数据库增删查改的 *** 作、关于DELPHI中的DBGRID的一些问题、delphi dbgrid删除记录出错(删除选中行) adquery1:field 'id' not found等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9776124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存