在select语句上获取异常

时间:2015-03-23 14:47:32

标签: c# mysql

在以下代码中获取例外说明:{"Fatal error encountered during command execution."}

internal string GetUserRole(string userEmail)
    {
        _query = "SELECT Role FROM RegisteredUsers WHERE Email = @userEmail";
        string role = null;

        using (_msqlCon = new MySqlConnection(_connectionString))
        {
            _msqlCon.Open();

            using (_command = new MySqlCommand(_query, _msqlCon))
            {
                MySqlDataReader reader = _command.ExecuteReader();

                while (reader.Read())
                {
                    if (reader["Email"].Equals(userEmail))
                    {
                        role = reader["Role"].ToString();
                        break;
                    }
                }
            }
        }

        return role;
    }

innerException表示:必须定义Parameter @userEmail。当我必须从给定参数中选择时,这通常是我选择语句的方式,所以我猜它只是一个小错误。但是我已经在这个代码上瞎了近20分钟。我的查询有什么问题:_query = "SELECT Role FROM RegisteredUsers WHERE Email = @userEmail";

1 个答案:

答案 0 :(得分:5)

如错误所示...查询使用@userEmail参数,但您没有为此参数提供值。

ExecuteReader之前添加以下行:

_command.Parameters.AddWithValue("@userEmail", userEmail);