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

解决方案 »

  1.   

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

  2.   

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

  3.   

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

  4.   

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

  5.   

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

  6.   

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

  7.   

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

  8.   

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

  9.   

    谢谢大家,
    with adoquery do
    begin
    close;
    sql.clear;
    sql.add('select * from 表 where 编号='''+Edit1.Text+''');
    open;
    if not eof then
    showmessage('编号已存在')
    else下面怎么写?
      

  10.   

    else
      beign
        sql.clear;
        sql.text:='insert into 表(编号,信息) VALUES  ('''+Edit1.Text+''','''+Edit2.Text+''')';
        ExecSQL;  end;
      

  11.   

    else
      beign
        close;
        sql.text:='insert into 表(编号,信息) VALUES  ('''+Edit1.Text+''','''+Edit2.Text+''')';
        ExecSQL;  end;