在我网站的某个区域中,我需要控制对一组特定用户的访问。
这是通过对照 SQL 服务器数据库上的表检查用户 ID 来完成的。如果 ID 存在,则他们被授予访问权限:
SELECT 1 FROM admin WHERE userID = @userID
我注意到有几种方法可以检查数据库中是否存在行,并且想知道使用其中任何一种是否有任何好处,或者是否有标准。
首先是通过检查以下行是否存在SqlDataReader
:
if (!SqlCommand.ExecuteReader().HasRows)
{
//redirect
}
第二个是检查返回值是否正在DBNull
使用ExecuteScalar()
:
if (SqlCommand.ExecuteScalar() is DBNull)
{
//redirect
}
我应该使用哪个?有没有更好的办法?真的有关系吗?