我想检查我的查询是否返回任何值并相应地编写剩余的逻辑。
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;
最佳答案
这取决于你这里的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 ...}
关于c# - 检查c#中sql命令的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9715905/