次のコードを実行しようとしています。
_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 から正しく読み取られています (デバッガーを使用して確認できます)。同じconnectionString(データの挿入に使用される)を使用する他のメソッドもあり、それらは正しく機能します。私がここに欠けているものはありますか?!
これは私が呼び出そうとしている方法です:
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();
}