* MySQL Data Provider
- MySQL Data Provider for
MySQL databases. It is written in C# and uses
the MySQL C Client Library
- Exists in namespace Mono.Data.MySql and assembly Mono.Data.MySql
- Works on Windows and Linux via the MySQL client shared library
(libmySQL.dll on Windows and libmysqlclient.so on Linux).
- Started by Daniel Morgan using C# Bindings to MySQL from Brad Meril.
- Exploring MySQL in the Microsoft .NET Environment is an article
by Mr. Venu who is a MySQL AB developer.
- Other projects which have created a .NET Data provider for MySQL in C#
* Current Status
- can connect
- can execute non-queries via ExecuteNonQuery()
- can execute aggregates via ExecuteScalar() and retrieve the
single row/single column result
- can execute queries and retrieve results using a data reader.
- a schema DataTable has been partially
implemented which is returned from GetSchemaTable() in MySqlDataReader.
- a DataTable in a DataSet can be filled via a MySqlDataAdapter
- The shared client libraries
between windows version and linux are different: windows has libmySQL.dll
while linux has libmysqlclient.so. This is handled by the
file etc/mono/config which is mapped by the mono runtime in knowing
which native shared library to load. In cvs, this file is mono/config.in and
can be modified with a text editor.
* Action plan
The current plan to work on the MySQL data provider:
- Parameters support via MySqlParameter and MySqlParameterCollection
- Support LOBs (Large Object)
- Change the MySQL provider to not be dependent on a client library and
be written in 100% C#
- Connection pooling
- Get the provider to work like other data providers