Conectare la MySQL cu .NET Connector
Exemplu de cod pentru conectarea la MySQL prin .NET Connector și soluția erorii 'SELECT command denied' cu Use Procedure Bodies=false în connection string.
Următorul exemplu de cod poate fi utilizat pentru a obține acces la o bază de date MySQL prin .NET Connector-ul MySQL:
Poți implementa singur driverul MySQL pe găzduirea ta web; acesta poate fi descărcat de pe site-ul MySQL.
using MySql.Data.MySqlClient;
MySqlConnection con = new MySqlConnection();
string mysql = "Server=[server];Database=[database];User=[brugernavn];pwd=[password]";
con.ConnectionString = mysql;
con.Open();
MySqlCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT * FROM TestTabel";
cmd.Connection = con;
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Response.Write(reader.GetValue(0).ToString());
}
cmd.Dispose();
con.Close();
Eroare: SELECT command denied to user 'user'@'x' for table 'proc'
Cauza este o eroare în driverul MySQL. Documentată aici:
http://bugs.mysql.com/bug.php?id=10640
http://bugs.mysql.com/bug.php?id=16703
http://bugs.mysql.com/bug.php?id=14836
Un proces încearcă să execute o instrucțiune SELECT pe tabela proc. Această tabelă 'proc' este o tabelă de sistem, care stochează procedurile pentru toți utilizatorii de pe serverul MySQL. Pe găzduirea partajată, accesul la această tabelă este o problemă, deoarece accesul ar permite clienților să vadă procedurile unii altora.
O posibilă soluție la această problemă este să modifici șirul de conexiune, astfel încât să conțină "Use Procedure Bodies=false".
Exemplu:
"server=localhost; user id=dbuser; password=password; database=dbname; Use Procedure Bodies=false;"
Articol din categoria de suport: ASP & ASP.NET