检查c#中sql命令的返回

本文关键字:返回 命令 sql 检查 | 更新日期: 2023-09-27 18:28:04

我想检查我的查询是否返回任何值,并相应地写入剩余的逻辑。

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;

检查c#中sql命令的返回

这取决于这里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 ...}

使用SqlDataReader.HasRows()

if (myReader.HasRows())
{
    // Do something
}