mysqlado.netdbproviderfactories

How can I use ADO.NET DbProviderFactory with MySQL?


How can I use ADO.NET DbProviderFactory with MySQL?


Solution

  • First, you have to install the MySQL .Net Connector.

    The MySQL Provider factory has the invariant name "MySql.Data.MySqlClient". Below is some example C# code that retrieves all the table names in the local test database and sticks them in a listbox in response to a button click.

    private void button1_Click(object sender, EventArgs e)
    {
        var dbf = DbProviderFactories.GetFactory("MySql.Data.MySqlClient");
        using (var dbcn = dbf.CreateConnection())
        {
            dbcn.ConnectionString = "Server=localhost;Database=test;Uid=test;Pwd=test;";
            dbcn.Open();
            using (var dbcmd = dbcn.CreateCommand())
            {
                dbcmd.CommandType = CommandType.Text;
                dbcmd.CommandText = "SHOW TABLES;";
                using (var dbrdr = dbcmd.ExecuteReader())
                {
                    while (dbrdr.Read())
                    {
                        listBox1.Items.Add(dbrdr[0]);
                    }
                }
            }
        }
    }