2

我正在尝试执行以下代码:

    _cmd.CommandText = "SELECT * FROM category";
    MySqlDataReader ret;
    _cmd.Connection = _con;
    _con.Open();
    ret = _cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
    _con.Close();

    return ret;     

然而,我收到一个奇怪的错误:

字典中不存在给定的键。

正在从 web.config 正确读取连接字符串(我可以使用调试器看到这一点)。我还有其他使用相同连接字符串(用于插入数据)的方法,它们可以正常工作。有什么我在这里想念的吗?!

这是我试图调用的方法:

  public MySqlDataReader ExecuteReader(String sql, MySqlParameter[] param)
    {
        if (param != null)
            _cmd.Parameters.AddRange(param);

        _cmd.CommandText = sql;
        MySqlDataReader ret;

        _con.Open();
        ret = _cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

        return ret;
    }

它是从此 Web 服务调用的:

[WebMethod]
        public string[] GetCategories()
        {
            String sql = "SELECT CategoryName FROM category";
            DatabaseHelper dh = new DatabaseHelper();
            MySqlDataReader dr = dh.ExecuteReader(sql, null);
            List<String> categories = new List<string>();
            while (dr.Read())
            {
                categories.Add(dr[0].ToString());
            }
            dr.Close();

            return categories.ToArray();
        }
4

0 回答 0