c# - 检查c#中sql命令的返回

标签 c# visual-studio-2010

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

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/

相关文章:

c# - 如何使用MVVM模式启动错误弹出窗口?

c# - 无法将 lambda 表达式转换为类型 'bool',因为它不是委托(delegate)类型错误

visual-studio-2010 - 在 Visual Studio 中快速键入的键盘快捷键是什么?

visual-studio-2010 - 从 VS2010 安装程序安装快捷方式

.net - WPF 功能区示例

c# 字符串到 html 保持空白?

c# - 抽象类可以在 C# 中实现吗?

c# - DateTime.TryParseExact 不在 out 参数中返回值?

c# - WPF 数据绑定(bind)到另一个类

c++ - 使用 VS2010 编译器的 CMake 2.8.12 在构建 CGAL-4.3 时出错