判断一条记录在数据库中是否存在,什么方法最简单?
我想判断一下一条数据在数据库的一个表中是不是存在,什么方法最简单?
非得使用sqldataadapter,然后select+条件,fill到一个dataset里面去,在判断datatable的count是否等于1?非要绕这么大一个圈子吗?有没有简单点的方法?
问题点数:20、回复次数:10Top
1 楼cnhgj(戏子) (没时间练太极)回复于 2004-12-04 00:56:12 得分 2
SqlDataReader也可以
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
if (!reader.Read())
//没有
reader.Close();
Top
2 楼yanransoft()回复于 2004-12-04 01:35:38 得分 10
string sql="select count(*) from table where condition";
SqlCommand cmd = new SqlCommand(sql, conn);
Int32 count = (int32) cmd.ExecuteScalar();
if (count==0)
//没有
reader.Close();Top
3 楼lanbaibai(蓝白白)回复于 2004-12-04 01:51:42 得分 2
写一个存储过程
if exists(select * from t where 条件)Top
4 楼locateangel(累,心累)回复于 2004-12-04 02:53:38 得分 0
要判断在数据库中到底有几条符合条件的数据,是不是应该用 yanransoft大虾的方法?Top
5 楼robin06(挖粪涂墙)回复于 2004-12-04 03:45:08 得分 2
cmd.ExecuteScalar()返回的是受影响的行数Top
6 楼hzkun(阿飞)回复于 2004-12-05 00:38:58 得分 4
上楼说的没错,如果是select count(*) 话是返回的NULL 最好加个判断为NULL在用int32Top
7 楼liuwei662656(天堂)回复于 2004-12-05 02:09:22 得分 0
用 cnhgj(戏子) (一个人睡) 的方法.
快.
记得关数据库连接就行.Top
8 楼locateangel(累,心累)回复于 2004-12-05 10:30:57 得分 0
[C#]
public virtual object ExecuteScalar();
[C++]
public: virtual Object* ExecuteScalar();
[JScript]
public function ExecuteScalar() : Object;
返回值
结果集中第一行的第一列或空引用(如果结果集为空)。
===============================================
好像ExecuteScalar()返回的不是行数Top
9 楼locateangel(累,心累)回复于 2004-12-05 10:33:14 得分 0
ExecuteNonQuery()返回的是受影响的行数,但是好像只对delete,insert和update。而对select好像返回的是-1Top
10 楼locateangel(累,心累)回复于 2004-12-05 10:41:10 得分 0
yanransoft大虾的意思实在高深,我刚刚理解,再综合阿飞大虾的提醒,应该可以了。Top




