什么是'int'类型函数的返回变量(sql查询函数)

1 c# asp.net

下面我声明一个巫婆类型的函数是'int'.我为sql查询声明了这个函数,它将int作为输出.在这里,我必须返回一些东西.但我无法理解我在这个'int'类型函数中返回的内容.

    public int Login(LoginClass loginClassObj)
    {
        string connectionString = @"Data Source=localhost;Initial Catalog=LoginTest;Integrated Security=True";
        SqlConnection connection = new SqlConnection(connectionString);
        connection.Open();

        string query = @"SELECT COUNT(log_in) FROM login_table WHERE username = '"+loginClassObj.Username+"' AND password = '"+loginClassObj.Password+"'";
        SqlCommand command = new SqlCommand(query,connection);
        command.ExecuteNonQuery();
        return ???;  
    }
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

好吧,你有一个问题...但出于某种原因你正在打电话ExecuteNonQuery.您应该指定ExecuteScalar以获取单个值.然后,您可以将结果转换为int:

return (int) command.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

我认为重点是返回匹配用户的数量,尽管这有点奇怪.

另外:

  • 您应该使用using连接和命令的语句,以便适当地处理它们
  • 从来没有像这样将值嵌入到SQL中 - 使用参数化SQL来避免SQL注入攻击和其他问题.有关SqlCommand.Parameters示例,请参阅文档.
  • 如果您确实直接在数据库中获得了密码,那么这是一个重要问题.希望它实际上是一些描述的摘要
  • 目前尚不清楚为什么你已经宣布方法返回int开始.也许你应该宣布它会返回bool?方法声明是给你的吗?您应该始终知道参数和返回类型的含义 - 否则您无法正确实现该方法.