procedure TEmpManageForm_frmButton1Click(Sender: TObject);
var
EMPID:string;
begin
if edit1Text='' then
begin
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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)