其中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;