jueves, septiembre 21, 2006

Web Services y MySQL


Continuando con la línea de los WebServices .NET en Linux, les mostraré cómo interactuar con MySQL. Asumiré que ya se tiene un servidor de base de datos operativo en el mismo computador y que obviamente se sabe SQL.
El código relacionado es el siguiente:

using System;
using System.IO;
using System.Data;
using ByteFX.Data.MySqlClient;
using System.Web.Services;

[WebService(Namespace="http://localhost:8080",Description="Un WebService con base de datos MySQL")]
public class MiServidor : System.Web.Services.WebService
{
[WebMethod(Description="Entrega el cargo dando el nombre")]
public string Obtener_cargo(string nombre)
{
string cargo="";
string connectionString = "Server=localhost;" +
"Database=personal;" +
"User ID=root;" +
"Password=mi_password;" +
"Pooling=false";
IDbConnection dbcon;
dbcon = new MySqlConnection(connectionString);
dbcon.Open();
IDbCommand dbcmd = dbcon.CreateCommand();
string sql =
"SELECT cargo FROM personas WHERE nombre = '" +
nombre + "'";
dbcmd.CommandText = sql;
IDataReader reader = dbcmd.ExecuteReader();
while(reader.Read()){
cargo = (string) reader["cargo"];
}
reader.Close();
reader = null;
dbcmd.Dispose();
dbcmd = null;
dbcon.Close();
dbcon = null;
return cargo;
}
}

La base de datos, para este caso, se llama personal, el UserID es el superusuario, y la password es el que tiene el superusuario en la base de datos.
Noten que el using que permite realizar la conexión con la base de datos MySQL es ByteFX.Data.MySqlClient y que es importante incluir, igualmente, el System.Data.
Para Compilar se debe colocar lo siguiente:

mcs –t:library –r:System.Web.Services,System.Data,ByteFX.Data –out:MiServidor.dll MiServidor.cs