其中Edit1.Text用来输入产品编号.Edit2.Text用来输入产品信息.要如何防止Edit1.Text输入同样的编号到数据库中?  
  例如:Edit1.Text输入的数据在添加到数据库中是,系统提示有重复编号.否则成功将Edit1.Text和Edit2.Text的内容输入到数据库中.  
   
  谢谢大家提供方法!!!!

建立唯一索引。

谢谢楼上的.还有别的方法吗?  
 

用自动编号,或自动生成.像你这种就插入的时候select一下数据库存看有没有值相同的

在update前,查一下数据库里面有没有相同的编号,有就提示一下。

查数据库最好,因为既然要用户来输,一般就不会是自编号.我一直用这样办法,先查数据库,如果有相同的,showmessage();没有,update  
 

把编号设置为主键  
  想输都输不进去

数据库设主键.程序中用插入或更新之前查询一下数据库中有没有这一产品编号了,有就提示后exit,没有就允许操作.

进错地方了,抽自己一下

谢谢大家!!!  
   
  语句具体什么写?

select   *   from   表   where   编号='''+Edit1.Text+'''  
  if   not   eof   then  
  showmessage('编号已存在')  
  else  
  .....  
   
  给点分我吧,我也有问题要问,没有分了,惨~

建主键是最实际的办法,否则太多麻烦,因为  
   
  1、发现重复值后,你到底是如何处理?改另外一个号还是更新数据?  
  2、同理,如果存在更新问题,那么这个时候判断数据库有重复值将更加罗嗦。

楼上的楼上正解

Hank(星星农场)   (   )   信誉:115         Blog     2006-12-22   12:58:59     得分:   0      
     
     
        建主键是最实际的办法,否则太多麻烦,因为  
   
  1、发现重复值后,你到底是如何处理?改另外一个号还是更新数据?  
  2、同理,如果存在更新问题,那么这个时候判断数据库有重复值将更加罗嗦。  
       
     
   
   
  谢谢!!!  
   
  才插入数据后,发现有重复的,showmessage('编号已存在')。不需要革新新的数据。要求用户重新编号,只到无重复为止。  
 

取得edit的值去数据库查下  
  with   adoquery   do  
  begin  
  close;  
  sql.clear;  
  sql.add('select   *   from   表   where   编号='''+Edit1.Text+''');  
  open;  
  if   not   eof   then  
  showmessage('编号已存在')  
  else  
   
 

delphi   学习群:31469235  
  加入请注明   csdn   字样  
  让我们共同提高  
   
  由于刚刚创立,请大家踊跃参加。

帮帮我~~~~~~~

帮帮我~~~~~~~

实现的方法很多,楼主为什么就不自己动动手,尝试着按照别人说的做一下看看结果是什么样的。。。。。

一般来说有三种方法  
  1在数据库的相应的字段上建立唯一约束  
   
  2在数据库的相应的字段上建立主键  
   
  3自己去检索是不是已经存在  
 

十分佩服楼主

谢谢大家,  
   

with   adoquery   do   
   begin   
   close;   
   sql.clear;   
   sql.add('select   *   from   表   where   编号='''+Edit1.Text+''');   
   open;   
   if   not   eof   then   
   showmessage('编号已存在')   
   else   
     
   下面怎么写?else   
       beign   
           sql.clear;   
           sql.text:='insert   into   表(编号,信息)   VALUES     ('''+Edit1.Text+''','''+Edit2.Text+''')';   
           ExecSQL;   
     
       end;else   
       beign   
           close;   
           sql.text:='insert   into   表(编号,信息)   VALUES     ('''+Edit1.Text+''','''+Edit2.Text+''')';   
           ExecSQL;   
     
       end;