高手请进?(关于动态赋值)

HopeRemains 2003-10-15 02:42:48
Form上面有:
edtID,edtName,edtAddress控件

如何:
DataSet.Parameters.ParamByName('Name').Value:=?;

例如:
如果Name='edtID'那么:
DataSet.Parameters.ParamByName('edtID').Value:=edtID.Text;
如果Name='edtName'那么:
DataSet.Parameters.ParamByName('edtName').Value:=edtName.Text;
如果Name='edtAddress'那么:
DataSet.Parameters.ParamByName('edtAddress').Value:=edtAddress.Text;

...







如何做?
...全文
37 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
HopeRemains 2003-10-15
  • 打赏
  • 举报
回复
我用FindComponent搞好了,谢谢大家.
nhdj 2003-10-15
  • 打赏
  • 举报
回复
楼上的主意很好
caven 2003-10-15
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i].ClassName='TEdit'then
DataSet.Parameters.ParamByName(Components[i].Name).Value:=(Components[i] as TEdit).text;
end;
end;
HopeRemains 2003-10-15
  • 打赏
  • 举报
回复
如果我有30个TEdit,那么代码就有30*5=150行。

代码维护也麻烦!
myfine 2003-10-15
  • 打赏
  • 举报
回复
up
HopeRemains 2003-10-15
  • 打赏
  • 举报
回复
如果TEdit很多呢?(30个左右)
那有好长的代吗?
再说我的TEdit全部是动态生成的。

Linux2001 2003-10-15
  • 打赏
  • 举报
回复
用if else if不就搞定了吗,还需要高手来解决?
IORILI 2003-10-15
  • 打赏
  • 举报
回复
用判断语句控制不行吗
dickeybird888 2003-10-15
  • 打赏
  • 举报
回复
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from table1 where 1=1 ');
if edtID.text<>'' then
begin
adoquery1.sql.add(' and edtID=:AedtID');
adoquery1.parameters.parambyname('AeditID').value:=edtID.tEXT;
end;
if edtID.text<>'' then
begin
adoquery1.sql.add(' and edtName=:AedtName');
adoquery1.parameters.parambyname('AeditName').value:=edtName.tEXT;
end;
if edtaddress.text<>'' then
begin
adoquery1.sql.add(' and edtAddress=:AedtAddress');
adoquery1.parameters.parambyname('AeditAddress').value:=edtAddress.tEXT;
end;
adoquery1.open;
HopeRemains 2003-10-15
  • 打赏
  • 举报
回复
就是
给TEdit的名称,然后显示他的值?

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧