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();
@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.