El presente documento, es un manual, para personas con conocimientos basicos de programacion y uso de bases de datos, contiene la explicacion de como realizar una conexion de una base de datos de my sql con visual c charp.
2. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 1
En el presente documento, explicaré el procedimiento para realizar una conexión de C#
(c Sharp) a My Sql, lo hare con visual C # express 2008, tambien el procedimiento
funciona con Microsoft Visual Studio 2010 y 2012, los pasos a seguir son los mismos.
Requerimientos:
Instalar My sql, en mi caso tengo el 5.1.29.
Para lograr hacer uso de las librerias de My sql en
Visual C#, necesitamos el My Sql connector Net
5.2, el instalador se denomina MySql.Data, aquí
una imagen, para falitar el reconocimiento, pesa
4.04 MB.
Instalamos el MySql.Data, el procedimiento es el de siempre, 2ble clic
izquierdo, aceptar térmionos de licencia, siguiente, siguiente, siguiente,
siguiente,finalizar, eso se lo dejo a ustedes.
Y el ultimo ingrediente: el Visual c# express, como mencione al inicio, estos
pasos de conexión funcionan para el viusual portable 2008, y los instalados 2010
y 2012, no he probado con el visual 2005, pero pueden experimentar.
Procedimiento:
Ejecutamos el visual, vamos al menú archivo, luego al sub menú nuevo proyecto, y
elegumos Aplicación de Windows Form.
Yo llamaré al proyecto “Conexión modo
Kyuubi”, ustedes llámenlo como les plazca.
Luego de nombrarla, click en el botón
Aceptar.
3. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 2
Bien, ya hemos creado el proyecto, el siguiente paso es crear una base de datos, yo
usare una que creé para un proyecto de la universisdad el hace dos semestres, la
denomine restaurante.
Ustedes pueden reutilizar alguna base de datos o crearla… mmmmm bueno si es para
practicar, si es para un proyecto especifico, awebo tienen que hacerla.
La base de datos esta conformada por seis
tablas, menciono esto porque proximamente
explicare como crear formularios, pero eso
sera en mi proximo tutorial.
Una vez creada la base de datos, no haremos
nada mas, por ahora.
Ahora vamos a visual, y agregamos una
clase el proyecto, sub menú Proyecto,
agregar clase.
Restaurante será
mi base de datos
para crear la
conexión.
4. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 3
Llamaré “Conexión” a esta clase,
pues en ella recidirá el núcleo o la
esencia de este tutorial; una vez
nombrada, click en agregar.
Ahora vamos a lo que importa: la conexión
1) Vamos a Referencias en el panel que esta a la derecha.
2) Click derecho sobre Referencias.
3) Elegimos la opcion agregar referencia.
4) Aparecerá una vetana con varias opciones: Iremos a la pestaña examinar.
Damos varios click a este
icono,hasta que nos presente
las opciones del escritorio,
como se muestra en la imagen
de la derecha.
5. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 4
Una vez que la ventana muestre los elementos del escritorio, vamos a Mi PC, y
vamos a Disco Local (C).
Luego 2ble click, y elegimos Archivos de
programa.
2ble click en archivos de
programa, y buscamos
MYSQL.
2ble click en MYSQL, y aparecerá esto:
Nota: Si no instalaron el Mysql.Data, se ARRUINARON; cuando
se ha instalado, se crea la carpeta MYSQL Connector Net 5.2.4,
dentro de MYSQL, ésta, señores, es la clave para realizar la
conexión, dentro de ésta carpeta está el elemento para hacer la
conexión, sin el no hay nada.
6. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 5
2ble click en MYSQL connector, elegimos Binaries, luego .NET 2.0 y finalmente
MySql.Data.dll, luego click en aceptar.
Si se realizó el procedimiento adecuadamente,
en el panel de la derecha, en referencias, debe
aparecer Mysql.Data.
Estamos listos para trabajar: A codificar!!!!!
Creación de la clase Conexión
Agregamos una directiva using System. Data
y dos directivas de My Sql:
using MySql;
using MySql.Data.MySqlClient;
Con estas “librerías” podemos hacer uso de
elementos que permitirán realizar la conexión, si
no se agregan estas tres líneas de código en la clase
Conexión, no será posible lograr el objetivo.
7. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 6
Lo que sigue es declarar una variable, privada y del tipo string, dentro de la clase, esta
variable solo se usara en esta clase. Llamaré a la variable con.
Luego creamos un método que será el encargado de realizar la conexión, será del tipo void
porque no me interesa que retorne ningún valor, yo lo llamaré “Creadordeconexion”,
recibirá como parámetros dos variables del tipo string, una llamada user, pueden llamarla
usuario o como deseen, y otra llamada pass, password, clave o lo que sea. Éstas se
capturarán en el loggin.
Dentro del método se asigna un valor a la variable con, este valor es el que permite la
conexión y funciona así:
1) Srting.Format. Formatea a string los valores que le siguen, aun no me aprendo
su función.
2) Server, indica el servidor o lugar en donde esta alojada la base de datos, en este
caso es local, (localhost), pero podría estar en red, en un host remoto.
3) Database: indicamos el nombre de la base de datos con la que deseamos
trabajar, en este caso, restaurante.
4) User id: almacena el valor correspondiente al usuario, la sintaxis completa es:
User id= (0). En caso que la conexión sea para una sola base de datos.
5) Password: almacena el valor correspondiente a la contraseña de la base de
datos.
6) user, pass, son las variables que se le pasan a la cadena de conexión y las
mismas que recibe el método. (capturadas en el loggin).
Traducción al castellano de la cadena de conexión:
Busca un server; local en este caso; en el server busca una base de datos llamada
restaurante, que tiene usuario y contraseña, todos los caracteres reconócelos como
cadena o string, el usuario y contraseña te los van a pasar como parámetros, es decir, los
vas a capturar en otro lado. (El loggin).
Esa es la lógica de la conexión, entendiendo esto, es fácil.
Variable
Método
8. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 7
A continuación creare otro método, el cual gestionara la conexión, y manejara posibles
errores, la denominare “Connection” y es tipo bool.
Haré uso de un try-catch; en el try, evalúo el caso en que las condiciones sean óptimas
para la conexión, es decir que se ingresen de forma correcta los datos, para ello, creo
una variable dentro del método, del tipo MySqlConnection, la variable se llamara
conexion, almaceno dentro de ella la variable con, que explique en la pagina anterior.
Luego abro la conexión, esto para verificar si los datos de la cadena de conexión son
correctos, posteriormente la cierro; si lo son, retorno un verdadero, si no, paso al catch.
En el catch, especifico que los parámetros de la cadena de conexión no son los correctos
para acceder a la base de datos, por tanto retorno falso.
Y eso es todo.
Hemos terminado la clase que gestiona la conexión.
Ahora demostraré su funcionalidad, para ello crearé un loggin, para que vean que si
funciona.
Creación del Loggin
Vamos al formulario que nos apareció
cuando creamos el proyecto.
Agregamos dos etiquetas o label, dos
botones (button), un cuadro de texto o
text box y una maskedTextBox o
mascara de texto, para la contraseña.
Renombro, label1 para User, label2
para Pass, textbox se llamara txtuser
Y maskedTextBox1 como maskpass.
9. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 8
Al formulario la cambiare el nombre por loggin, los botones de llamarán btaceptar y
btcancelar, tendrán como texto, aceptar y declinar.
En las propiedades de la maskedTextBox buscamos un
campo denominado PasswordChar y en el digitamos el
símbolo que deseamos sea la mascara para proteger la
contraseña, en mi caso usaré alt+7, (•).
Quedará así el formulario:
Ahora procederé a codificar los botones,
primero codificare el botón cancelar, es
muuuuuuuy difícil, jajajjaja no es cierto,
doy 2ble click y escribiré this.Close();
Está listo el botón cancelar.
Vamos el que si importa: Aceptar.
2ble click sobre el botón aceptar, una ves hecho esto vamos a donde inicia la clase,
dentro de ella, declaro una variable privada del tipo de la Clase Conexión, en otras
palabras, instancio la clase Conexión.
Una vez hecho esto voy al botón aceptar, en el haré un if, con las siguientes
condiciones:
Si el cuadro de texto del usuario está vacío o es igual a vacío y si el cuadro de mascara
de texto está vacío, manda un mensaje que indique error.
Si las cajas de texto contienen datos, llama el método Creadordeconexion de la clase
Conexión, y pásale los valores del cuadro o caja de texto de usuario y el valor que
contenga el cuadro de mascara de texto, luego verifica si el método Connection permite
establecer la conexión, (que regrese true); si los parámetros son correctos, manda un
mensaje que indique que fue exitoso el loggin, sino, manda un mensaje que indique
error en las credenciales, o lo que se te ocurra.
La codificación es la siguiente:
10. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 9
Codificación del botón
aceptar.
Entre llaves rojas.
Codificación del botón
cancelar o declinar, entre
llaves azules.
11. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 10
Pero esto no ha terminado, falta compilar el programa, presiono F5, y veamos que pasa.
Intento de loggin sin
ingresar parámetros.
Intento de loggin con usuario valido
pero sin clave correcta o nula.
Intento de loggin con usuario
incorrecto y clave errónea.
12. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 11
Intento de loggin sin usuario y con
clave.
Loggin exitoso!!!!!!!!!!!!!!!!!!!!!!
13. Conexión a My Sql con C#
N. Julian Benavidez S Copyright by Kyuubi, 2013 Página 12
Bueno gente, esto es todo por ahora, próximamente publicare el procedimiento para
realizar formularios y navegación, usando la misma base de datos.
Espero les sea de utilidad este documento, disculpen por algunas expresiones, pero así
me concentro mas cuando programo, trato de divertirme mientras lo hago, de lo
contrario, enloquecería, (no es verdad), es mi sello personal, aunque un poco pajista,
jajajajajajajajajajajajajajajaja.
Si tiene comentarios pueden escribir a mi correo:
norman.bs@hotmail.es.
Hasta la próxima, sayonara.