当数据库主键不是编号,添加记录不能自动生成编号的时候,如何检测主键名称已经存在?
我在做一个疾病管理数据库,主键不是编号,是症状的名字,因为症状名字本身是不会重复的,可以做主键。但是问题出来了,我想添加新记录的时候就得考虑添加的新记录的疾病名称会不会已...
我在做一个疾病管理数据库,主键不是编号,是症状的名字,因为症状名字本身是不会重复的,可以做主键。但是问题出来了,我想添加新记录的时候就得考虑添加的新记录的疾病名称会不会已经出现了,因为主键不是编号,所以不能自动生成编号,那该如何解决啊,感觉跟解决检测用户名已经存在一样,可是如何实现呢?我用的是C#,目前的方案是把症状名称跟新的症状名称一一比对,如果相似那么就不能提交新记录,可是为啥实现不了呢?大家有没有更好的方法?
我是用的C#做的窗体,所以要用C#语句来检测是否重复,不是在SQLSever上面进行的…… 展开
我是用的C#做的窗体,所以要用C#语句来检测是否重复,不是在SQLSever上面进行的…… 展开
5个回答
展开全部
你在插入记录之前先查下数据库有没有这个症状的名字的记录啊.没有记录的时候再执行插入操作.
你要在C#语句里面检测也要先通过SQL语句来查询,查询得到的结果再和你想插入的数据作比较.
你要在C#语句里面检测也要先通过SQL语句来查询,查询得到的结果再和你想插入的数据作比较.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主键如果存在,数据库系统会自动报错。写入之前先判断一下即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不管用什么开发,都可以通过SQL来完成判断
if not exists (select 1 from tb where 疾病名称 = '插入值')
insert into tb(疾病名称 ) values ('插入值')
但这样做在程序中无法知道是否插入了数据
如果你想在程序得知道这个信息,就先执行
select 1 from tb where 疾病名称 = '插入值'
然后判断返回的dataset中是否有记录,如果有就不执行插入语句,如果没有,继续
insert into tb(疾病名称 ) values ('插入值')
if not exists (select 1 from tb where 疾病名称 = '插入值')
insert into tb(疾病名称 ) values ('插入值')
但这样做在程序中无法知道是否插入了数据
如果你想在程序得知道这个信息,就先执行
select 1 from tb where 疾病名称 = '插入值'
然后判断返回的dataset中是否有记录,如果有就不执行插入语句,如果没有,继续
insert into tb(疾病名称 ) values ('插入值')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
where 条件你不会写错了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询