私のウェブサイトでは、MySQL データベースを使用しています。データベース関連のすべての操作を実行する Web サービスを使用しています。
現在、その Web サービスのメソッドの 1 つで、次のエラーが発生します。
テーブル '<table-name>' に対するユーザー '<userid>'@'<ip-address>' の選択コマンドが拒否されました
何が問題なのでしょうか?
以下はエラーが発生したコードです。デバッグを試みたところ、次の行でエラーが発生することがわかりました。
MySqlDataReader result1 = command1.ExecuteReader();
これが私のコードです:
String addSQL = "Select Max(`TradeID`) from `jsontest`.`tbl_Positions";
MySqlConnection objMyCon = new MySqlConnection(strProvider);
objMyCon.Open();
MySqlCommand command = objMyCon.CreateCommand();
command.CommandText = addSQL;
MySqlDataReader result = command.ExecuteReader();
//int j = command.ExecuteNonQuery();
while (result.Read())
{
MaxTradeID = Convert.ToInt32(result[0]);
}
objMyCon.Close();
for (i = 1; i <= MaxTradeID; i++)
{
String newSQL = "Select `Strike`,`LongShort`,`Current`,`TPLevel`,`SLLevel` from `json`.`tbl_Position` where `TradeID` = '" + i + "'";
MySqlConnection objMyCon1 = new MySqlConnection(strProvider);
objMyCon1.Open();
MySqlCommand command1 = objMyCon1.CreateCommand();
command1.CommandText = newSQL;
MySqlDataReader result1 = command1.ExecuteReader();
objMyCon2.Close();
ベストアンサー1
元の投稿者の問題はずっと前に解決されていると思います。しかし、私も同じ問題を抱えていたので、この問題の原因を説明しようと思いました。
私は 2 つのテーブル「foo」と「foo_bar」でユニオン クエリを実行していました。しかし、SQL ステートメントにタイプミスがありました:「foo.bar」
そのため、エラー メッセージには、「foo.bar」テーブルが存在しないことが示されるのではなく、権限がないかのようにコマンドが拒否されたことが示されます。