各位大哥哥好,小弟在校学生,初学Delphi,遇到很多问题,请各位不吝赐教。
我建立了一个窗口,想用一个条件判断的语句来实现,如果edit1和edit2及radiobutton1和2都没有值的话,就弹出信息“输入不能为空”,如果输入都正确,就执行SQL语句,然后弹出操作成功。
我的代码如下,运行的结果是 :只有当edit2.text=''时,才弹出“输入不能为空”,而且SQL的代码还是执行了。像edit1.text=''时和radiobutton=false,不会弹出“输入不能为空的消息”且SQL也执行了。请帮忙看看要如何修改啊~~
if (trim(edit2.Text)<>'')and(trim(edit1.Text)<>'')and ((radiobutton1.Checked=false) or (radiobutton2.Checked=false)) then
begin
with Dingshishezhi do
begin
close;
sql.Clear;
sql.Add('update 机器信息 set 上机时间=:a,下机时间=:b,费用=:c,人数=:d,状态=:e where 机器号码=:s');
parameters.ParamByName('s').Value:=strtoInt(form1.listview1.Selected.Caption);
parameters.ParamByName('a').Value:=datetimetostr(now());
parameters.ParamByName('b').Value:=datetimetostr(IncMinute(now(),m));//计算下机时间
parameters.ParamByName('c').Value:=trim(edit2.Text); if radiobutton1.Checked then parameters.ParamByName('d').Value:=1
else parameters.ParamByName('d').Value:=2;
if radiobutton1.Checked then parameters.ParamByName('e').Value:='单人'
else parameters.ParamByName('e').Value:='双人';
execsql;
end;
Application.MessageBox('操作成功','提示',64);
end
else application.MessageBox('输入信息不能为空!','提示',64);
我建立了一个窗口,想用一个条件判断的语句来实现,如果edit1和edit2及radiobutton1和2都没有值的话,就弹出信息“输入不能为空”,如果输入都正确,就执行SQL语句,然后弹出操作成功。
我的代码如下,运行的结果是 :只有当edit2.text=''时,才弹出“输入不能为空”,而且SQL的代码还是执行了。像edit1.text=''时和radiobutton=false,不会弹出“输入不能为空的消息”且SQL也执行了。请帮忙看看要如何修改啊~~
if (trim(edit2.Text)<>'')and(trim(edit1.Text)<>'')and ((radiobutton1.Checked=false) or (radiobutton2.Checked=false)) then
begin
with Dingshishezhi do
begin
close;
sql.Clear;
sql.Add('update 机器信息 set 上机时间=:a,下机时间=:b,费用=:c,人数=:d,状态=:e where 机器号码=:s');
parameters.ParamByName('s').Value:=strtoInt(form1.listview1.Selected.Caption);
parameters.ParamByName('a').Value:=datetimetostr(now());
parameters.ParamByName('b').Value:=datetimetostr(IncMinute(now(),m));//计算下机时间
parameters.ParamByName('c').Value:=trim(edit2.Text); if radiobutton1.Checked then parameters.ParamByName('d').Value:=1
else parameters.ParamByName('d').Value:=2;
if radiobutton1.Checked then parameters.ParamByName('e').Value:='单人'
else parameters.ParamByName('e').Value:='双人';
execsql;
end;
Application.MessageBox('操作成功','提示',64);
end
else application.MessageBox('输入信息不能为空!','提示',64);
if trim(edit2.Text) <>''then
begin
//......
end
else application.MessageBox('输入信息不能为空!','提示',64);
if trim(edit1.text)='' then
begin
MessageBox(handle,'不能为空','提示',MB_ICONINFORMATION);
edit1.setfocus;
Exit;
end;
......
以此进行验证,保证都输入再执行你的SQL
if (trim(edit2.Text) <>'') or (trim(edit1.Text) <>'') or radiobutton1.Checked or radiobutton2.Checked then
...
if (trim(edit2.Text) <>'') then
begin
if(trim(edit1.Text) <>'')and ((radiobutton1.Checked=false) or(radiobutton2.Checked=false)) then
begin
with Dingshishezhi do
begin
close;
sql.Clear;
sql.Add('update 机器信息 set 上机时间=:a,下机时间=:b,费用=:c,人数=:d,状态=:e where 机器号码=:s');
parameters.ParamByName('s').Value:=strtoInt(form1.listview1.Selected.Caption);
parameters.ParamByName('a').Value:=datetimetostr(now());
parameters.ParamByName('b').Value:=datetimetostr(IncMinute(now(),m));//计算下机时间
parameters.ParamByName('c').Value:=trim(edit2.Text); if radiobutton1.Checked then parameters.ParamByName('d').Value:=1
else parameters.ParamByName('d').Value:=2;
if radiobutton1.Checked then parameters.ParamByName('e').Value:='单人'
else parameters.ParamByName('e').Value:='双人';
execsql;
end;
Application.MessageBox('操作成功','提示',64); end ;
end
else application.MessageBox('输入信息不能为空!','提示',64);注意格式一个begin对一个end 外层与内层空一行 一个if对应一个else 这样逻辑才清晰