我想检查我的查询是否返回任何值,并相应地写下剩余的逻辑。
SqlCommand myCommand = new SqlCommand("Select * from phc.userbase where [user]='@Username' and [password]='@password'", myConnection);
我想知道这个命令是否返回null。我试过了
myReader = myCommand.ExecuteReader();
bool rd = myReader.Read();
if rd==false
但我无法让它发挥作用。有什么想法吗?
以下是我的参数:
SqlParameter myParam = new SqlParameter("@Username", SqlDbType.VarChar, 25);
myParam.Value = usr;
SqlParameter myParam2 = new SqlParameter("@password", SqlDbType.VarChar, 25);
myParam2.Value = pass;
答案 0 :(得分:2)
if (myReader.HasRows())
{
// Do something
}
答案 1 :(得分:2)
这取决于null
这里的含义;你的意思是“没有行”?如果是这样的话:
using(var myReader = myCommand.ExecuteReader()) {
if(myReader.Read()) {
// at least 1 row; can now check columns
} else {
// no rows
}
}
说实话,你可以将其更改为SELECT 1 ...
并使用ExecuteScalar
- 更不用说了。
在这种情况下,仅SELECT 1 ...rest of query...
并使用:
object value = myCommand.ExecuteScalar();
if(value != null) { ... got a row ...}