c# - 将 MySQL 列与方法中的参数变量进行比较

标签 c# mysql

我想将电子邮件与参数变量(也称为电子邮件)进行比较。我收到一条错误消息“参数?电子邮件必须定义”我也尝试使用@email:

internal bool ValidateUser(string email, string password, bool rememberMe)
{
    bool valid = false;

    using (_msqlCon = new MySqlConnection(_connectionString))
    {
        _msqlCon.Open();
        _query = "SELECT Password, RememberMe FROM RegisteredUsers WHERE Email = ?email";

        using (_command = new MySqlCommand(_query, _msqlCon))
        {
            MySqlDataReader reader = _command.ExecuteReader();
            if (reader["Password"].Equals(password)) { valid = true;  }
        }
    }
    return valid;
}

如何检查电子邮件列是否与作为参数给出的列相同?

最佳答案

如果您询问如何在查询中使用 email 参数,答案是将其作为参数添加到命令对象中。试试这个:

internal bool ValidateUser(string email, string password, bool rememberMe)
{
    bool valid = false;
    using (_msqlCon = new MySqlConnection(_connectionString)) {
        _msqlCon.Open();
        _query = "SELECT Password, RememberMe FROM RegisteredUsers WHERE Email = @Email";

        using (_command = new MySqlCommand(_query, _msqlCon)) {
            _command.Parameters.AddWithValue("@Email", email);
            MySqlDataReader reader = _command.ExecuteReader();

            if (reader["Password"].Equals(password)) {
                valid = true;
            }
        }
    }
    return valid;
}

参见the documentation有关如何使用参数的更多信息。

关于c# - 将 MySQL 列与方法中的参数变量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28953732/

相关文章:

c# - MVC 模拟 (Moq) - HttpContext.Current.Server.MapPath

c# - 如何访问 Npgsql 4.0 通用参数中的 TypedValue

c# - LightSwitch 与数据库的配合方式发生变化

mysql - 根据相同的 ID 从两个表中选择所有内容

mysql - 查询设置货币mysql

c# - 将 JSON 字符串反序列化为自定义 Java 对象

c# - 如何在 Application_EndRequest 中获取 RouteData

mysql - 即使我位于根文件夹中,Drush cc 也只提供两个选项

python - 不支持身份验证插件 'caching_sha2_password'

mysql - SQL 仅选择列上具有最大值的行