adoquery1.sql.Clear;
adoquery1.sql.add('select * from zidian');
adoquery1.open;
adoquery1.Edit;
adoquery1.fieldbyname('quyu').AsString:=quyu;
adoquery1.fieldbyname('id').AsString:=edit2.Text;
adoquery1.fieldbyname('name').AsString:=edit3.Text;
adoquery1.post;
edit2.Clear;
edit3.Clear;
application.MessageBox('修改成功!','正确',mb_ok);
我这样写.但是只更新我第一行的数据.这是为什么?
12 个解决方案
#1
adoquery1.close;
adoquery1.sql.Clear;
adoquery1.sql.add('select * from zidian');
//adoquery1.open;
//adoquery1.Edit;
adoquery1.append;
adoquery1.fieldbyname('quyu').AsString:=quyu;
adoquery1.fieldbyname('id').AsString:=edit2.Text;
adoquery1.fieldbyname('name').AsString:=edit3.Text;
adoquery1.post;
edit2.Clear;
edit3.Clear;
application.MessageBox('修改成功!','正确',mb_ok);
试试
adoquery1.sql.Clear;
adoquery1.sql.add('select * from zidian');
//adoquery1.open;
//adoquery1.Edit;
adoquery1.append;
adoquery1.fieldbyname('quyu').AsString:=quyu;
adoquery1.fieldbyname('id').AsString:=edit2.Text;
adoquery1.fieldbyname('name').AsString:=edit3.Text;
adoquery1.post;
edit2.Clear;
edit3.Clear;
application.MessageBox('修改成功!','正确',mb_ok);
试试
#2
这个应该是插入数据吧
我想要的是修改
比如我有三行数据
然后if zidian.TreeView1.Selected <> nil then
begin
if not zidian.ADOQuery1.eof then
begin
bjzl.edit1.Text:=zidian.TreeView1.Selected.Text;
bjzl.Edit2.Text:=zidian.ADOQuery1.fieldbyname('编号').AsString;
bjzl.Edit3.Text:=zidian.ADOQuery1.fieldbyname('名称').AsString;
读我选中的数据到另一个form上的edit只.然后更改其中某一字段.点保存.修改该行数据
我现在的结果是有一个是修改了.但是修改的不是我选中的数据(比如我选中的是第二行)它切总是只修改第一行的数据
我想要的是修改
比如我有三行数据
然后if zidian.TreeView1.Selected <> nil then
begin
if not zidian.ADOQuery1.eof then
begin
bjzl.edit1.Text:=zidian.TreeView1.Selected.Text;
bjzl.Edit2.Text:=zidian.ADOQuery1.fieldbyname('编号').AsString;
bjzl.Edit3.Text:=zidian.ADOQuery1.fieldbyname('名称').AsString;
读我选中的数据到另一个form上的edit只.然后更改其中某一字段.点保存.修改该行数据
我现在的结果是有一个是修改了.但是修改的不是我选中的数据(比如我选中的是第二行)它切总是只修改第一行的数据
#3
Adoquery的Edit只对当前记录有效,需要使用Next移动到下一条记录进行修改。
还是写个SQL语句吧:
Adoquery1.Connection.Execute(Format('UPDATE zidian quyu=''%s'',id=''%s'',name=''%s''',[quyu,edit2.Text,edit3.Text]));
还是写个SQL语句吧:
Adoquery1.Connection.Execute(Format('UPDATE zidian quyu=''%s'',id=''%s'',name=''%s''',[quyu,edit2.Text,edit3.Text]));
#4
你是直接在表格上做修改吗
#5
用ADOCOMMAND吧
#6
你这种方法也就只能是更新一行,更新多行问题就大了
换个方法处理更新多行
换个方法处理更新多行
#7
遍历结果集更新吧
#8
我只需要更新一行.关键是我现在更新出来的都不对.我更新第二行.结果总变成更新第一行
#9
改哪行就定位到哪行啊
建议使用sql语句
建议使用sql语句
#10
用数据感知组件来定位.改那行就点那一行.
#11
我做了一个定位就好了.谢谢.
#12
你可以把zidian里面的唯一值赋在页面里面.比如select * from zidian where ....
这样就不会错了.
这样就不会错了.
#1
adoquery1.close;
adoquery1.sql.Clear;
adoquery1.sql.add('select * from zidian');
//adoquery1.open;
//adoquery1.Edit;
adoquery1.append;
adoquery1.fieldbyname('quyu').AsString:=quyu;
adoquery1.fieldbyname('id').AsString:=edit2.Text;
adoquery1.fieldbyname('name').AsString:=edit3.Text;
adoquery1.post;
edit2.Clear;
edit3.Clear;
application.MessageBox('修改成功!','正确',mb_ok);
试试
adoquery1.sql.Clear;
adoquery1.sql.add('select * from zidian');
//adoquery1.open;
//adoquery1.Edit;
adoquery1.append;
adoquery1.fieldbyname('quyu').AsString:=quyu;
adoquery1.fieldbyname('id').AsString:=edit2.Text;
adoquery1.fieldbyname('name').AsString:=edit3.Text;
adoquery1.post;
edit2.Clear;
edit3.Clear;
application.MessageBox('修改成功!','正确',mb_ok);
试试
#2
这个应该是插入数据吧
我想要的是修改
比如我有三行数据
然后if zidian.TreeView1.Selected <> nil then
begin
if not zidian.ADOQuery1.eof then
begin
bjzl.edit1.Text:=zidian.TreeView1.Selected.Text;
bjzl.Edit2.Text:=zidian.ADOQuery1.fieldbyname('编号').AsString;
bjzl.Edit3.Text:=zidian.ADOQuery1.fieldbyname('名称').AsString;
读我选中的数据到另一个form上的edit只.然后更改其中某一字段.点保存.修改该行数据
我现在的结果是有一个是修改了.但是修改的不是我选中的数据(比如我选中的是第二行)它切总是只修改第一行的数据
我想要的是修改
比如我有三行数据
然后if zidian.TreeView1.Selected <> nil then
begin
if not zidian.ADOQuery1.eof then
begin
bjzl.edit1.Text:=zidian.TreeView1.Selected.Text;
bjzl.Edit2.Text:=zidian.ADOQuery1.fieldbyname('编号').AsString;
bjzl.Edit3.Text:=zidian.ADOQuery1.fieldbyname('名称').AsString;
读我选中的数据到另一个form上的edit只.然后更改其中某一字段.点保存.修改该行数据
我现在的结果是有一个是修改了.但是修改的不是我选中的数据(比如我选中的是第二行)它切总是只修改第一行的数据
#3
Adoquery的Edit只对当前记录有效,需要使用Next移动到下一条记录进行修改。
还是写个SQL语句吧:
Adoquery1.Connection.Execute(Format('UPDATE zidian quyu=''%s'',id=''%s'',name=''%s''',[quyu,edit2.Text,edit3.Text]));
还是写个SQL语句吧:
Adoquery1.Connection.Execute(Format('UPDATE zidian quyu=''%s'',id=''%s'',name=''%s''',[quyu,edit2.Text,edit3.Text]));
#4
你是直接在表格上做修改吗
#5
用ADOCOMMAND吧
#6
你这种方法也就只能是更新一行,更新多行问题就大了
换个方法处理更新多行
换个方法处理更新多行
#7
遍历结果集更新吧
#8
我只需要更新一行.关键是我现在更新出来的都不对.我更新第二行.结果总变成更新第一行
#9
改哪行就定位到哪行啊
建议使用sql语句
建议使用sql语句
#10
用数据感知组件来定位.改那行就点那一行.
#11
我做了一个定位就好了.谢谢.
#12
你可以把zidian里面的唯一值赋在页面里面.比如select * from zidian where ....
这样就不会错了.
这样就不会错了.