Simply.com is available in english

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