保存事件:
procedure TFrm_ManageUser.Button1Click(Sender: TObject);
begin
If (Edit1.Text<>'') And (Edit2.Text<>'') Then
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM userinfo where name='+''''+Edit1.Text+'''');
Open;
If ADOQuery1.RecordCount>0 Then
begin
showmessage('该信息已经存在!请重新输入!');
Edit1.Clear;
Edit2.Clear;
Exit;
end;
If X=1 then
begin
Insert;
X:=0;
end
else IF x=2 Then
begin
Edit;
X:=0;
end
Else
begin
Exit;
end;
FieldByName('Name').AsString:=Edit1.Text;
FieldByName('pass').AsVariant:=Edit2.Text;
Post;
end;
Edit1.Clear;
Edit2.Clear;
ADOQuery1.SQL.Text:='SELECT * FroM userinfo';
ADOQuery1.Open;
end;
end;
修改事件:
procedure TFrm_ManageUser.Button2Click(Sender: TObject);
begin
X:=2;
ADOQuery1.Edit;
end;
先点Button2把数据在Edit1和Edit2中进行修改,然后点保存,为什么DBGrid1中显示的就是添加新的一行,没有达到修改的目的,以前的数据还是存在。
procedure TFrm_ManageUser.Button1Click(Sender: TObject);
begin
If (Edit1.Text<>'') And (Edit2.Text<>'') Then
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM userinfo where name='+''''+Edit1.Text+'''');
Open;
If ADOQuery1.RecordCount>0 Then
begin
showmessage('该信息已经存在!请重新输入!');
Edit1.Clear;
Edit2.Clear;
Exit;
end;
If X=1 then
begin
Insert;
X:=0;
end
else IF x=2 Then
begin
Edit;
X:=0;
end
Else
begin
Exit;
end;
FieldByName('Name').AsString:=Edit1.Text;
FieldByName('pass').AsVariant:=Edit2.Text;
Post;
end;
Edit1.Clear;
Edit2.Clear;
ADOQuery1.SQL.Text:='SELECT * FroM userinfo';
ADOQuery1.Open;
end;
end;
修改事件:
procedure TFrm_ManageUser.Button2Click(Sender: TObject);
begin
X:=2;
ADOQuery1.Edit;
end;
先点Button2把数据在Edit1和Edit2中进行修改,然后点保存,为什么DBGrid1中显示的就是添加新的一行,没有达到修改的目的,以前的数据还是存在。
解决方案 »
- 招聘DELPHI程序员
- 怎样使程序在系统启动时自动启动,而且最好不能被用户取消?
- 一个关于纪录操作人员所有的操作--不知道如何来实现
- 如果我想把一条语句插入两个表里请问有办法吗?
- DBGrid中显示时间时为什么在前面有1899-12-30?
- 极简单问题,先来者得分!
- 关于cxDBLookupComboBox的使用方法!!!!
- ?我想了好。。。。。。长时间的问题?能帮帮我么??????(废话别说)???
- 调用excel为什么我明明已经quit了,但还有excel进程
- 怎样把paradox数据库的一个字段分成俩个?
- 升级SDAC数据访问控件,更新字段提示field 'xxxx' cannot be modified出错,急
- [DCC Error] cxExportGrid4Link.pas(3145): E2010 Incompatible types: 'TcxDataSumma
SQL.Add('SELECT * FROM userinfo where name='+''''+Edit1.Text+'''');
搜查出来的结果为空。这时你的ADOQuery1内没有任何数据信息。你怎么修改?
现在你的数据源里面没有任何数据。当然就不能修改。只能作为新增POST进去!
只要把提交(Post)和查询校验(检查重复记录)所用的ADOQuery分开就不会搞混掉了