Я запустил команду без ошибок в mysql. моя другая команда работает нормально, но этот код не работает. кто-нибудь знает, что произойдет с этим кодом.«Указанный ключ отсутствовал в словаре» при выполнении mysqldatareader в C#
private static User GetUser(MySqlCommand cmd)
{
User usr = new User();
MySqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
usr.Id = Convert.ToInt32(rdr["Id"]);
usr.Level = (Level)Enum.Parse(typeof(Level), rdr["level"].ToString());
usr.Email = rdr["email"].ToString();
usr.CreatedDate = Convert.ToDateTime(rdr["createdDate"].ToString());
usr.LastLoginDate = Convert.ToDateTime(rdr["lastLoginDate"].ToString());
}
}
return usr;
}
public static User GetUserFromID(int userID)
{
string qry = "SELECT * FROM user WHERE ID = ?userID";
User user = new User();
MySqlConnection cnn = new MySqlConnection(Globals.CONNSTRING);
cnn.Open();
using (cnn)
{
MySqlCommand cmd = new MySqlCommand(qry, cnn);
cmd.Parameters.AddWithValue("userID", userID);
user = GetUser(cmd);
}
cnn.Close();
return user;
}
Код счетный здесь дал мне ошибку, что
«Данный ключ не присутствовал в словаре.»
на линии Line 158:
MySqlDataReader rdr = cmd.ExecuteReader();
ли кто-то знает, что не так происходит с этим кодом? Я добавил CharSet=utf8;
в connectionstring, поскольку люди предлагают в SO.
В базе данных я использую MariaDB и разъем туздо последний разъем. Кто-нибудь знает, есть ли у этого проблемы.
У меня нет проблем, пока я запускаю свою другую функцию. Проблема возникает в этой единственной функции, где я использую выполнение mysqldatareader.
@DGibbs спасибо, но я смущен. Мой другой запрос отлично работает на C#. Я установил utf-8, как говорят люди в их ответе. Теперь я проверил, что параметр установлен правильно. Я ничего не упускаю. Вы можете проверить это: – user2126670
Что такое 'Globals.connString'? Какова ценность 'cnn'? Вы уверены, что ваша строка подключения правильная? –
@ SonerGönül Да, это работа над другой функцией, которую я написал, и они звонят из mysqlhelper. эта единственная функция, написанная mysqlexecutereader, создает проблемы. Ну, я только написал 1 функцию, которую я разместил здесь. – user2126670