判断是否数据重复语句出错。。(50)

  • 主题发起人 主题发起人 jink
  • 开始时间 开始时间
J

jink

Unregistered / Unconfirmed
GUEST, unregistred user!
看一下DELPHI 那里有错误啊?不知道什么地方错了,麻烦高手指点这个是一个判断填入内容是否有重复的语句。。。 procedure TForm1.Button2Click(Sender: TObject); begin adoquery1.SQL.close; adoquery1.SQL.sql.clear; adoquery1.SQL.Add('select * from 客户资料 where 客户名称= '''+edit1.text+''''); if adoquery1.RecordCount >0 then begin Application.Title := '警告' ; showmessage('客户名称重复') end else begin adoquery1.append; adoquery1.FieldByName('客户名称').AsString:=Edit1.texT; adoquery1.FieldByName('街道地址').AsString:=Edit2.texT; adoquery1.FieldByName('门 牌 号').AsString:=Edit3.texT; adoquery1.FieldByName('联系方式').AsString:=Edit4.texT; adoquery1.FieldByName('联 系 人').AsString:=Edit5.texT; adoquery1.FieldByName('备 注').AsString:=Edit6.texT; adoquery1.Post; adoquery1.Open; Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; Edit6.Clear; end; end; 要求:确认重复或者未重复都不显示adoquery1.SQL.Add('select * from 客户资料 where 客户名称= '''+edit1.text+''''); 的结果。
 
难道有很多错误? 在线等哦,各位大侠??
 
Edit1. Edit2. Edit3. Edit4. Edit5. Edit6.客户资料 街道地址' 门 牌 号' 联系方式' 联 系 人' 备 注'在六个 EDIT 里填入内容 ,通过 butten2 填入数据库。如果 客户资料重复,那么就提示'客户名称重复'. 以防止重复填入数据现在的问题在于,我虽然能判断是否重复了,可是 DBGRIDEH 里面显示的是'select * from 客户资料 where 客户名称= '''+edit1.text+'''' 的查询结果,而不是表内所有内容
 
adoquery1.SQL.Add('select * from 客户资料 where 客户名称= '''+edit1.text+''''); 这句后面咋没Open?没打开数据集就在判断if adoquery1.RecordCount >0了?
 
哦。忘记了,, 显示的问题呢?
 
varquery1 :tadoquery;//如果DBGRIDEH的dataset是adoquery1的话begin query1 := tadoquery.create;query1.connection := adoquery1.connection;query1.SQL.close; query1.SQL.sql.clear; query1.SQL.Add('select 1 from 客户资料 where 客户名称 ='+quotedstr('%'+trim(edit1.text)+'%'); query1.open;if Application.MessageBox(PChar('已有此客户名称,是否继续添加'),'提示',MB_YESNO+mb_iconinformation)<>idyes then Exit;adoquery1.append; adoquery1.FieldByName('客户名称').value:=trim(Edit1.texT); adoquery1.FieldByName('街道地址').value:=trim(Edit2.texT); adoquery1.FieldByName('门 牌 号').value:=trim(Edit3.texT); adoquery1.FieldByName('联系方式').value:=trim(Edit4.texT); adoquery1.FieldByName('联 系 人').value:=trim(Edit5.texT); adoquery1.FieldByName('备 注').value:=trim(Edit6.texT); adoquery1.Post; Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; Edit6.Clear;
 
拿回家看看,先谢谢哦。
 
procedure TForm1.Button2Click(Sender: TObject); varquery1 :tadoquery;//如果DBGRIDEH的dataset是adoquery1的话begin tryadoquery1.SQL.close; adoquery1.SQL.sql.clear; adoquery1.SQL.Add('select * from 客户资料 '); adoquery1.open;query1 := tadoquery.create;query1.connection := adoquery1.connection;query1.SQL.close; query1.SQL.sql.clear; query1.SQL.Add('select 1 from 客户资料 where 客户名称 ='''+trim(edit1.text)+''''; query1.open;if query1.RecordCount >0 then begin Application.Title := '警告' ; showmessage('客户名称重复') ;exit;end;adoquery1.append; adoquery1.FieldByName('客户名称').AsString:=Edit1.texT; adoquery1.FieldByName('街道地址').AsString:=Edit2.texT; adoquery1.FieldByName('门 牌 号').AsString:=Edit3.texT; adoquery1.FieldByName('联系方式').AsString:=Edit4.texT; adoquery1.FieldByName('联 系 人').AsString:=Edit5.texT; adoquery1.FieldByName('备 注').AsString:=Edit6.texT; adoquery1.Post; adoquery1.Open; Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; Edit6.Clear; finally query1.free;end;end;
 
to deardai,有问题哦。里面有点小错误。 不知道截图发到那里去?
 
继续带走回家看结果,谢谢 yixueying2003
 
你的问题出在你的query上。需要申请两个query,一个是编辑打开的,一个就是判断重复的
 
你用2个adoquery,一个显示,一个只用于判断重复的就行了。。。比如:adoquery2.SQL.close; adoquery2.SQL.sql.clear; adoquery2.SQL.Add('select * from 客户资料 where 客户名称= '''+edit1.text+''''); 后面的用adoquery1就行了。
 
to deardai,yixueying2003下面是出的错误的图片,不知道怎么回事、、http://hiphotos.baidu.com/kklss/abpic/item/a374b451fe4c7d39367abe82.jpg顺便问一下 query:= uil是什么意思? 可以通过这个来做判断嘛?
 
用一个ADOQuery的话,在插入之前,先对DBGRIDEH的DataSet进行遍历,看看有没有记录的值是和即将插入的值一样,然后判断进行操作……with DBGRIDEH.DataSource.DataSet dobegin First; while (not Eof) do if Fields[0].AsString = Trim(Edit1.Text) then begin Application.Title := '警告' ; showmessage('客户名称重复') ; exit; end else Next;end;...//添加新的记录
 
qjinshanq, 谢谢哦,又提供了一种新方式。。遍历 第一次接触哦。学习学习带走。。。
 
if adoquery1.locate('客户名称',edit1.text,[]) then //重复
 
qjinshanq 的成功了 linuxping, 的带走~~
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
594
import
I
I
回复
0
查看
626
import
I
后退
顶部