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;
	}	
}
Herramientas personales