当前位置:编程学习 > C#/ASP.NET >>

如何保证传入数据库中的值是不重复的

在线等啊,大神们 

假设现在有一张表class ,有字段classid ,classname,classid是主键,classname具有唯一性。如何实现,页面上传入的classname值与数据库中已有的classname不重复呢?有oracle存储过程和三层架构实现! --------------------编程问答-------------------- 第一种,自增字段
第二种,自己定规则,每次生成不一样的内容 --------------------编程问答-------------------- 将classid 和 classname一起做为表的主键 --------------------编程问答-------------------- 你添加的时候查询数据库有没有这个classname不就行了吗。有就提交失败,没有就提交。 --------------------编程问答--------------------
引用 3 楼 smilepasta035 的回复:
你添加的时候查询数据库有没有这个classname不就行了吗。有就提交失败,没有就提交。


可以这样!!!!! --------------------编程问答-------------------- 3楼的方法,理论上我会,可是不知道该怎么写? --------------------编程问答-------------------- 传入参数,也就是CLASSname  然后对比数据库,返回bool

select Classname from biao where classname=classname
--------------------编程问答-------------------- 这个存储过程该怎么写呢?第一次接触oracle数据库,谢谢了 --------------------编程问答-------------------- 上面说的对,你先判断classname是否存在 ,存在就不提交 不存在就提交

if not  exists(select classname from class )
begin
--插入语句
end
--------------------编程问答-------------------- if not exists(select 1 from class where classname=@classname)
   insert...... --------------------编程问答-------------------- 请问一下,这个是oracle中的存储过程么? --------------------编程问答-------------------- PL-SQL
select Classname from biao where classname=classname
--------------------编程问答-------------------- _classname class.classname%TYPE 
select count(*) into num from class where classname=_classname
如果num大于0就不添加 --------------------编程问答--------------------
引用 8 楼 z_dota 的回复:
上面说的对,你先判断classname是否存在 ,存在就不提交 不存在就提交
SQL code12345if not  exists(select classname from class )begin--插入语句end


正解 --------------------编程问答-------------------- 在表上建约束,可以保证值不会重复 --------------------编程问答-------------------- 不要用 NOT 效率不咋的! --------------------编程问答-------------------- 其实三楼那个方法也还是可行的,数据库查询到了就不添加,没查到就添加,当然了,根据您的需求如果都要添加则让数据库的字段具有唯一性 --------------------编程问答--------------------
sql语句:
declare @cnt int 
select @cnt=count(*) from table where classname=@classname
if(@cnt=0)
begin
 insert into table(classid,classname) values(@classid,@classname)
end
就这个语句就可以保证你的classname不会重复了  --------------------编程问答--------------------
引用 3 楼 smilepasta035 的回复:
你添加的时候查询数据库有没有这个classname不就行了吗。有就提交失败,没有就提交。


说的很明白啊,就是页面提交的时候先不插入,而是搜索数据库中有没有重名的,有的话,拒绝插入返回错误,没有的话就执行插入方法
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,