Conexión con MySQL Server
De WikiGlib
Tabla de contenidos |
MySql
Este ejemplo supone que existe una base de datos tmp y una tabla table tbl_names en MySQL.
Creamos un script que se llama tbl_names.sql y el cual define lo siguiente:
CREATE TABLE tbl_names (name varchar(20),age smallint.description varchar(100));
Ahora para crear la base de datos tmp y cargar la tabla en una base de datos en MySql, hacemos lo siguiente:
$mysql -u usuario -p mysql> create database tmp; mysql> exit
y para cargar la tabla en la base de datos tmp usando nuestro script, hacemos lo siguiente:
$mysql -u usuario_mysql -p tmp < /ruta/a/script/tbl_names.sql
MySql Conector
Primero hay que descargar el ensamblado desde la siguiente liga http://dev.mysql.com/downloads/connector/net/5.0.html
Posteriormente hay que instalar en el GAC de Mono el ensamblado de la siguiente forma:
#gacutil -i MySql.Data.dll
Deberá quedar así dependiendo de la versión que haya descargado:
/usr/lib/mono/gac/MySql.Data/5.0.8.1__c5687fc88969c44d/MySql.Data.dll
Posteriormente cambie los permisos del propietario del ensamblado para que su aplicación pueda acceder y cargar su ensamblado a tiempo de ejecución
#chown usuario:grupo /usr/lib/mono/gac/MySql.Data/5.0.8.1__c5687fc88969c44d/MySql.Data.dll pruebe con chmod para no afectar el acceso a los demás usuarios.
Compilar con el connector
Para compilar nuestro programa usando el ensamblado use:
$gmcs -r:System.Data.dll -r:/usr/lib/mono/gac/MySql.Data/5.0.8.1__c5687fc88969c44d/MySql.Data.dll archivo.cs
Ejemplo
Ejemplo práctico realizado con MySQL Connector:
using System;
using System.Data;
using MySql.Data.MySqlClient;
public class TestMysql
{
public static void Main()
{
//declaramos la variables para la conexion y el comando
IDbConnection dbcon;
IDbCommand dbc;
//declaramos la variable para almacenar la cadena de conexion
string constring = "Server=localhost;Database=tmp;User ID=user;Password=pass;Pooling=false";
//declaramos la variables que almacena la cadena de la sentencia SQL de insercion
string sql = "INSERT INTO tbl_names VALUES('name',24,null)";
//una nueva instancia de la clase MySqlConnection con el parametro de la cadena de conexion
dbcon = new MySqlConnection(constring);
//abrimos la conexion
dbcon.Open();
//creamos el comando
dbc = dbcon.CreateCommand();
//asignamos la variable de cadena de la sentencia sql para el atributo del comando
dbc.CommandText = sql;
//ejecutamos el comando y regresa el numero total de renglones afectados en la insercion
int rows = dbc.ExecuteNonQuery();
//escribimos el resultado
Console.WriteLine("rows affected: " + rows);
//limpiamos variables
dbc.Dispose();
dbc = null;
dbcon.Close();
dbcon = null;
}
}

