[MySql/C#] Access denied

Chcę wypełnić dataseta ale propgram zatrzymuje mi się w punkcie którym ma zapisać dane do dataseta i wyskakuje komunikat “Access deniad for user …”. Normalnie z bazą się łączy i dopisuje dane do tabeli. Co można na to poradzić ?

conn.Open();


                string strCmd = "SELECT * FROM dane";

                MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(strCmd, conn);

                DataSet dane = new DataSet("dane");

                MySql.Data.MySqlClient.MySqlDataAdapter adap = new MySql.Data.MySqlClient.MySqlDataAdapter(strCmd, conn.ConnectionString);

                adap.Fill(dane); <- w tym miejscu program się "sypie"

                this.dataGrid1.DataSource = dane;

                this.dataGrid1.DataMember = dane.Tables[0].TableName;


                conn.Close();

spróbuj zamiast:

MySql.Data.MySqlClient.MySqlDataAdapter adap = new MySql.Data.MySqlClient.MySqlDataAdapter(strCmd, conn.ConnectionString);

zapodać:

MySql.Data.MySqlClient.MySqlDataAdapter adap = new MySql.Data.MySqlClient.MySqlDataAdapter();

adap.SelectCommand=cmd;

@topic: Jeśli masz już połączenie otwarte, to nie otwieraj kolejnego(jest możliwość, że użytkownik ma max. jedno połączenie na raz ustawione). Zamiast tworzyć adapter podając do niego ConnectionStringa użyj już otwartego połączenia i przekaż połączenie(zamiast conn.ConnectionString samo conn).

PS. po co tworzysz obiekt “cmd” jak i tak go nie używasz?

EDIT: to jednak ja mam za małe doświadczenie… Przepraszam, jeśli kogoś uraziłem.

To co podał alex zadziałało

Mimo to Fiołek ma racje, jeżeli nowe połączenie nie jest konieczne to należy unikać tworzenia nowego połączenia.