在以下代码中获取例外说明:{"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";
?
答案 0 :(得分:5)
如错误所示...查询使用@userEmail
参数,但您没有为此参数提供值。
在ExecuteReader
之前添加以下行:
_command.Parameters.AddWithValue("@userEmail", userEmail);