我已经在 mysql 中运行该命令而没有任何错误。我的其他命令运行良好,但此代码不起作用。有人知道这段代码会发生什么。
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;
}
我在这里粘贴的代码给了我错误
“给定的键不在字典中。”
在第 158 行:
MySqlDataReader rdr = cmd.ExecuteReader();
有人知道这段代码出了什么问题吗?CharSet=utf8;
正如人们在 SO 中建议的那样,我已经添加了连接字符串。
我使用的数据库是mariaDB,连接器是mysql最新的连接器。有人知道这是否有任何问题。
运行其他功能时我没有问题。问题发生在我使用 mysqldatareader 执行的单个函数中。