首页 新闻 会员 周边

C#,SQL语句 向数据库插入数据前,检查是否已经存在

0
悬赏园豆:20 [已解决问题] 解决于 2012-08-28 11:03

     现有学生信息表一个,要从excel里导入学生信息。导入之前要判断学号是否重复,如果重复,就给出提示信息。本来挺简单的,就是插入之前,执行一条select语句,看看数据是否存在就可以了。但是现在的要求是 先把这些学号放到List<string>里,要求一次就查出来是否有重复,只要返回一个布尔值就可以。

小郭哥的主页 小郭哥 | 初学一级 | 园豆:63
提问于:2012-07-06 14:43
< >
分享
最佳答案
0

不管你存放在那里,如果你要求一次就查出来是否有重复,有2个方法:

  1、将所有学号都传值给sql

如一楼说的 select count(*) from Table WHERE xuehao IN ('A','B','C')  中的'A','B','C'就是需要传值了。可以直接存'A','B','C' 后自己组字符串 exec(strsql)

  2、将所有学好读取出来 ,再用Contains比较也好,字符串比对也行,啥方便就咋比

select xuehao from Table

收获园豆:5
Shannon | 小虾三级 |园豆:611 | 2012-07-06 15:13
其他回答(3)
0

select count(*) from A WHERE XUEHAO IN ('A','B','C')

收获园豆:5
無限遐想 | 园豆:3740 (老鸟四级) | 2012-07-06 14:49

XUEHAO 是多个啊 难道是 count(*) from ('A','B') XUEHAO IN ('A','B','C')

支持(0) 反对(0) 小郭哥 | 园豆:63 (初学一级) | 2012-07-06 14:50

@悲催北漂: A B C 不就是代表多個嗎?xuehao是字段哦

支持(0) 反对(0) 無限遐想 | 园豆:3740 (老鸟四级) | 2012-07-06 14:52
0

List<string> lsit=...

//判断是否

bool isContains=list.Contains("2012002");

收获园豆:5
Qlin | 园豆:2403 (老鸟四级) | 2012-07-06 15:03
0

这样判断逻辑上有问题,如果你查的时候没有,而插入的时候有了呢?

相对可靠的方式是在存储过程中完成判断并立即插入,成功返回主键,否则返回0或-1。

收获园豆:5
邀月 | 园豆:25475 (高人七级) | 2012-07-09 09:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册