一个记录输入问题?
int button;
String sql,sz;
if(LEdit1->Text=="")
{button=Application->MessageBox("请填写学号!!!","错误",16);
if(button==1)
return;}
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from student");
Query1->Open();
Query1->First();
while(!Query1->Eof)
{if(Query1->FieldByName("学号")->AsString==Edit1->Text)
{ShowMessage("此学号已存在");return;}
else Query1->Next();}
运行程序时,if(Query1->FieldByName("学号")->AsString==Edit1->Text)
{ShowMessage("此学号已存在");return;}好象没有运行,为什么?
我输入一个存在的学号的时候并不报错!
请大虾帮忙看看!
问题点数:0、回复次数:4Top
1 楼chiangpiong(蓝色等待)回复于 2006-02-04 20:06:55 得分 0
代码没有任何问题啊,呵呵Top
2 楼Tonezhu(唐狼)回复于 2006-02-05 00:43:47 得分 0
你可以Select count(*) As SL from student where 学号='"+Edit1->Text+"'"
如果Query1->FieldByName("SL")->AsInteger大于零就可以了Top
3 楼chlin_tin(空中漫步)回复于 2006-02-11 09:26:31 得分 0
if(Query1->FieldByName("学号")->AsString==Edit1->Text)
{ShowMessage("此学号已存在");return;}
会不会是你的学号后面有空格呢,加一个Trim()上去试试Top
4 楼wf2091139(峰子)回复于 2006-02-11 14:57:08 得分 0
用if(Trim(Query1->FieldByName("学号")->AsString)==Trim(Edit1->Text))试试。
不过你用那中方法来判断是否存在真的是太不好了。
你可以改成像 Tonezhu(唐狼) 说的那中办法。
或者如果你真的想检索一下全表。可以用地位记录的办法。
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("select * from student");
Query1->Open();
Query1->First();
TLocateOptions Opts;
Opts.Clear();
if(Query1->Locate("序号",Trim(Edit1->Text),Opts))//存在
...
else//不存在
...
Top




