错误:至少一个参数没有被指定值

西湖月影 2021-03-09 03:08:50
是做数据库修改操作的。不知道怎么回事儿一直这个问题!


ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update Stuinfo set StuID=:StuID,StuNo=:StuNo,Sex=:Sex,Class=:Class,DepartMent=:DepartMent,BrithDay=:BrithDay,NativePlace=:NativePlace,Stu_Name=:Stu_Name where Stu_Name=:Stu_Name');
ADOQuery1.Open;
ADOQuery1.Parameters.ParamValues['StuId']:=QuotedStr(trim(edit7.Text));
ADOQuery1.Parameters.ParamValues['StuNo']:=QuotedStr(trim(edit1.Text));
ADOQuery1.Parameters.ParamValues['DepartMent']:= QuotedStr(trim(edit4.Text));
ADOQuery1.Parameters.ParamValues['Class']:= QuotedStr(trim(edit3.Text));
ADOQuery1.Parameters.ParamValues['Stu_Name']:= QuotedStr(trim(edit2.Text));
ADOQuery1.Parameters.ParamValues['BrithDay']:=QuotedStr(trim(edit6.Text));
ADOQuery1.Parameters.ParamValues['NativePlace']:= QuotedStr(trim(edit5.Text));
if RadioButton1.Checked=True then
ADOQuery1.Parameters.ParamValues['Sex']:=RadioButton1.Caption;
if RadioButton2.Checked=True then
ADOQuery1.Parameters.ParamValues['Sex']:=RadioButton2.Caption;
ADOQuery1.ExecSQL;
...全文
982 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
对的,不过一般性别只写男女
秋天之落叶 2021-03-12
  • 打赏
  • 举报
回复
引用 15 楼 早打大打打核战争 的回复:
[quote=引用 14 楼 秋天之落叶 的回复:][quote=引用 12 楼 早打大打打核战争 的回复:]ADOQuery1.Parameters.ParamByName('StuID').Value := trim(edit7.Text);
(RadioButton1.Caption + RadioButton2.Caption)[integer(RadioButton2.Checked) + 1]; 以前从没有这样用过,哈哈[/quote] 其实很简单,'男女'[1] = '男','男女'[2]='女',不过只适用于unicode string,如果是ansi string就不行了,还得用Copy或者SubString [/quote] 男士女士也不行
  • 打赏
  • 举报
回复
引用 14 楼 秋天之落叶 的回复:
[quote=引用 12 楼 早打大打打核战争 的回复:]ADOQuery1.Parameters.ParamByName('StuID').Value := trim(edit7.Text);

(RadioButton1.Caption + RadioButton2.Caption)[integer(RadioButton2.Checked) + 1];
以前从没有这样用过,哈哈[/quote]

其实很简单,'男女'[1] = '男','男女'[2]='女',不过只适用于unicode string,如果是ansi string就不行了,还得用Copy或者SubString
秋天之落叶 2021-03-11
  • 打赏
  • 举报
回复
引用 12 楼 早打大打打核战争 的回复:
ADOQuery1.Parameters.ParamByName('StuID').Value := trim(edit7.Text);
(RadioButton1.Caption + RadioButton2.Caption)[integer(RadioButton2.Checked) + 1]; 以前从没有这样用过,哈哈
西湖月影 2021-03-10
  • 打赏
  • 举报
回复
最后那个 这样不用类型转换了是吗 网上找不到怎么类型转换的 =。=
秋天之落叶 2021-03-10
  • 打赏
  • 举报
回复
1、.ParamValues['StuId']改成.parambyname('StuId').value试一试 2、 if RadioButton1.Checked=True then ADOQuery1.Parameters.ParamValues['Sex']:=RadioButton1.Caption; if RadioButton2.Checked=True then ADOQuery1.Parameters.ParamValues['Sex']:=RadioButton2.Caption; 改成 if RadioButton1.Checked=True then ADOQuery1.Parameters.ParamValues['Sex']:=RadioButton1.Caption else if RadioButton2.Checked=True then ADOQuery1.Parameters.ParamValues['Sex']:=RadioButton2.Caption; 3、'update Stuinfo set CLng(StuNo='''+edit1.Text+'''),DepartMent='''+edit4.Text+''',......; 改成 ('update Stuinfo set StuNo='+ QuotedStr(trim(edit1.Text))+',DepartMent='+......);试一试 理论上上面的不会影响结果,就是两个相同变量引起的,但谁知道呢,也许瞎猫遇到死耗子呢。
西湖月影 2021-03-10
  • 打赏
  • 举报
回复
引用 4 楼 绍兴老鼠 的回复:
我一般不这样写 如果列数不多的话。 with qry1 do begin close; sql,.clear; sql.text:='''update table set c1='''+xxx+''' where xx='''+123+''''; ... end;
adoquery.SQL.Text:='update Stuinfo set CLng(StuNo='''+edit1.Text+'''),DepartMent='''+edit4.Text+''',Class='''+edit3.Text+''',Stu_Name='''+edit2.Text+''',CDate(BrithDay='''+edit6.Text+''')where NativePlace='''+edit5.Text+''''; 试了 说语法错误
西湖月影 2021-03-10
  • 打赏
  • 举报
回复
引用 1 楼 秋天之落叶 的回复:
我印象中:Stu_Name这个参数有两个且相同,好像系统不认,你写成:Stu_Name1和:Stu_Name2试一试。
多了一个 删除了 还是一样
绍兴老鼠 2021-03-10
  • 打赏
  • 举报
回复
我一般不这样写 如果列数不多的话。 with qry1 do begin close; sql,.clear; sql.text:='''update table set c1='''+xxx+''' where xx='''+123+''''; ... end;
  • 打赏
  • 举报
回复
ADOQuery1.Parameters.ParamByName('StuID').Value := trim(edit7.Text);
西湖月影 2021-03-10
  • 打赏
  • 举报
回复
引用 10 楼 早打大打打核战争 的回复:
ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('update Stuinfo set StuID=:StuID,StuNo=:StuNo,Sex=:Sex,Class=:Class,DepartMent=:DepartMent,BrithDay=:BrithDay,NativePlace=:NativePlace,Stu_Name=:Stu_Name where Stu_Name=:Stu_Name1'); ADOQuery1.Parameters.ParamByName('StuId').Value := trim(edit7.Text); ADOQuery1.Parameters.ParamByName('StuNo').Value:=trim(edit1.Text); ADOQuery1.Parameters.ParamByName('DepartMent').Value:= trim(edit4.Text); ADOQuery1.Parameters.ParamByName('Class').Value:= trim(edit3.Text); ADOQuery1.Parameters.ParamByName('Stu_Name').Value:= trim(edit2.Text); ADOQuery1.Parameters.ParamByName('Stu_Name1').Value:= trim(edit2.Text); ADOQuery1.Parameters.ParamByName('BrithDay').Value:=trim(edit6.Text); ADOQuery1.Parameters.ParamByName('NativePlace').Value:= trim(edit5.Text); ADOQuery1.Parameters.ParamByName('Sex').Value := (RadioButton1.Caption + RadioButton2.Caption)[integer(RadioButton2.Checked) + 1]; ADOQuery1.ExecSQL;
点击 修改 提示 StuID 找不到
  • 打赏
  • 举报
回复
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update Stuinfo set StuID=:StuID,StuNo=:StuNo,Sex=:Sex,Class=:Class,DepartMent=:DepartMent,BrithDay=:BrithDay,NativePlace=:NativePlace,Stu_Name=:Stu_Name where Stu_Name=:Stu_Name1');
ADOQuery1.Parameters.ParamByName('StuId').Value := trim(edit7.Text);
ADOQuery1.Parameters.ParamByName('StuNo').Value:=trim(edit1.Text);
ADOQuery1.Parameters.ParamByName('DepartMent').Value:= trim(edit4.Text);
ADOQuery1.Parameters.ParamByName('Class').Value:= trim(edit3.Text);
ADOQuery1.Parameters.ParamByName('Stu_Name').Value:= trim(edit2.Text);
ADOQuery1.Parameters.ParamByName('Stu_Name1').Value:= trim(edit2.Text);
ADOQuery1.Parameters.ParamByName('BrithDay').Value:=trim(edit6.Text);
ADOQuery1.Parameters.ParamByName('NativePlace').Value:= trim(edit5.Text);
ADOQuery1.Parameters.ParamByName('Sex').Value := (RadioButton1.Caption + RadioButton2.Caption)[integer(RadioButton2.Checked) + 1];
ADOQuery1.ExecSQL;
秋天之落叶 2021-03-10
  • 打赏
  • 举报
回复
引用 8 楼 忘川399的回复:
最后那个 这样不用类型转换了是吗 网上找不到怎么类型转换的 =。=
字符型的不需要啊
tanqth 2021-03-09
  • 打赏
  • 举报
回复
Stu_Name=:Stu_Name where Stu_Name=:Stu_Name 你使用了两个同名的Stu_Name ,改一下重新赋值。或者你在SQL语法里增加SQL变量然后使用也行的(但更麻烦)。
秋天之落叶 2021-03-09
  • 打赏
  • 举报
回复
https://blog.csdn.net/leavesguth/article/details/77636561
秋天之落叶 2021-03-09
  • 打赏
  • 举报
回复
我印象中:Stu_Name这个参数有两个且相同,好像系统不认,你写成:Stu_Name1和:Stu_Name2试一试。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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