ExecuteScalar方法问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 14:50:47
查了关于这个方法的资料,但还是不懂。“返回sql语句执行后的第一行第一列的值”,假设数据库有个admin表,里面有3个列id、admin和pwd,有两条记录,假设第二条为2,ad,ad。我的代码如下:
string sql = "select count(*) from Admin where admin='" + admin +"' and pwd='"+pwd+"'";
object obj = SQLHelper.ExecuteScalar(sql);
那如果我输入的是表的第二条记录,那返回的结果还是第一行第一列吗?
补充完整代码:
public bool CheckSession(string admin,string pwd)
{
string sql = "select count(*) from Admin where admin='" + admin +"' and pwd='"+pwd+"'";
object obj = SQLHelper.ExecuteScalar(sql);

if (Convert.ToInt32(obj) > 0)
return true;
return false;
}

输入的不管是哪条记录
因为你的结果是count(*) 结果只有一行 结果不是 1 就是 0。

select count(*) from Admin where admin='" + admin +"' and pwd='"+pwd+"'";

选出 一共有几行 从 ADMIN表中 且 admin=?
而且 pwd=?

count结果只有一行一列,查询的是条件相匹配的所有记录的总数