提交数据时如何判断edit.text是否为空?(5分)

  • 主题发起人 主题发起人 新手入门
  • 开始时间 开始时间

新手入门

Unregistered / Unconfirmed
GUEST, unregistred user!
提交数据时判断edit.text是否为空?如果为空showmessage('记录为空,不能输入')
光标跳回到edit.text上.谢谢!最好有代码.呵呵
 
if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;
end;


 
if edit.text = '' then
begin
ShowMessage('记录为空,不能输入');
edit.setFocus;
end;
 
运行时提错
出错提示为:project project1.exe raised cexeption class edbengineError whit
message'Key violation,',process stopped .Use step or Run to continue.
经常出现这种情况,但不知道是什么意思,望高手解答。
 
应该是你程序的其它地方有问题
 
procedure TForm1.Button1Click(Sender: TObject);
begin
table1.active:=true;
table1.insert;
table1.fieldbyname('bm').asstring:=edit1.text;
table1.fieldbyname('xm').asstring:=edit2.text;
table1.fieldbyname('rq').asdatetime:=data.date;
if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;
end;

table1.post;
edit1.text:='';
edit2.text:='';
showmessage('添加成功!!');
edit1.setfocus;
end;

看看哪有错?谢谢
 
if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;
end; ///执行到这里的时候就应该停止下面语句了。
///添加一句 Exit;(在end前)试试

table1.post;
edit1.text:='';
edit2.text:='';
showmessage('添加成功!!');
edit1.setfocus;
end;
 
糟糕,上面说错了
应该是


if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;
end ///执行到这里的时候就应该停止下面语句了。
else //用它来做选择
begin
table1.post;
edit1.text:='';
edit2.text:='';
showmessage('添加成功!!');
edit1.setfocus;
end
end;
 
不是提示你“edbengineError”了吗?
是数据库提交时错误了,可能是主键重复了。
 
不行,好像进入了一个死循环.
 
lnboy兄,我照你的输入, 当edit.text为空时可以出现提示并跳到edit1.text 处.重新
输入编码(BM)时出错.出错提示为:project project1.exe raised cexeption class
edbengineError whit message'Key violation,',process stopped .Use step or Run
to continue.确定后跳出main.pas大标压在table1.fieldbyname('bm').asstring:=edit1.text;


 
zbwsh,主键(bm)并没有重复.
 
的确是提交数据时出错了,查数据库并没有添加到记录.但不知道问题出在哪。
 
是不是数据类型不正确?
 
  field name type size key
1 bm s *
2 xm a 10
3 rq d

不知道有没有错.

bm(编码),xm(姓名),rq(日期)

 
你的次序错误,把
if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;
end ///执行到这里的时候就应该停止下面语句了。
else //用它来做选择
移到过程开头,否则当判断时空值已给了bm.
 
Re stlont:
我把
if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;

end
else
这段放在第一个BEGIN的后面,但也不行.好象不大合理。
 
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.text='' then
begin
showmessage('记录为空,不能输入');
edit1.setfocus;
end
else
begin
table1.active:=true;
table1.insert;
table1.fieldbyname('bm').asstring:=edit1.text;
table1.fieldbyname('xm').asstring:=edit2.text;
table1.fieldbyname('rq').asdatetime:=data.date;
table1.post;
edit1.text:='';
edit2.text:='';
showmessage('添加成功!!');
edit1.setfocus;
end;
end;

大致应该是这样的。
 
不行,刚试了.
 
可能你的关键字段的记录重复了,
比如已经有了 bm= 111
再插入 bm = 111的记录的话,就会有问题了。
 

Similar threads

回复
0
查看
848
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部