当数据库主键不是编号,添加记录不能自动生成编号的时候,如何检测主键名称已经存在?

我在做一个疾病管理数据库,主键不是编号,是症状的名字,因为症状名字本身是不会重复的,可以做主键。但是问题出来了,我想添加新记录的时候就得考虑添加的新记录的疾病名称会不会已... 我在做一个疾病管理数据库,主键不是编号,是症状的名字,因为症状名字本身是不会重复的,可以做主键。但是问题出来了,我想添加新记录的时候就得考虑添加的新记录的疾病名称会不会已经出现了,因为主键不是编号,所以不能自动生成编号,那该如何解决啊,感觉跟解决检测用户名已经存在一样,可是如何实现呢?我用的是C#,目前的方案是把症状名称跟新的症状名称一一比对,如果相似那么就不能提交新记录,可是为啥实现不了呢?大家有没有更好的方法?
我是用的C#做的窗体,所以要用C#语句来检测是否重复,不是在SQLSever上面进行的……
展开
 我来答
limin00011
2010-12-26
知道答主
回答量:10
采纳率:0%
帮助的人:17.3万
展开全部
如果症状名称是主键,则在数据库里会有唯一以及非空的约束,每当插入一条记录时会自动检测是否唯一,如果添加的症状名称重名,相信数据库里已经报错了并且没有插入这条记录只不过你在前台没有针对这个异常的处理
百度网友867d2cdbe
2010-12-26 · TA获得超过184个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:175万
展开全部
你在插入记录之前先查下数据库有没有这个症状的名字的记录啊.没有记录的时候再执行插入操作.

你要在C#语句里面检测也要先通过SQL语句来查询,查询得到的结果再和你想插入的数据作比较.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f7a0502
2010-12-26 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:152万
展开全部
主键如果存在,数据库系统会自动报错。写入之前先判断一下即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5183fa6
2010-12-26 · TA获得超过130个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:155万
展开全部
不管用什么开发,都可以通过SQL来完成判断

if not exists (select 1 from tb where 疾病名称 = '插入值')
insert into tb(疾病名称 ) values ('插入值')
但这样做在程序中无法知道是否插入了数据
如果你想在程序得知道这个信息,就先执行
select 1 from tb where 疾病名称 = '插入值'
然后判断返回的dataset中是否有记录,如果有就不执行插入语句,如果没有,继续
insert into tb(疾病名称 ) values ('插入值')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ddprflf
2011-01-04 · TA获得超过640个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:244万
展开全部
where 条件你不会写错了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式