my sql a c#

17
Como conectar una base de datos MySQL a una aplicación para Windows dentro de Visual C#.

Upload: guest6b3066

Post on 03-Jul-2015

349 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: My Sql A C#

Como conectar una base de

datos MySQL a una aplicación para

Windows dentro de Visual C#.

Page 2: My Sql A C#

MySQL: Es uno de los gestores de bases

de datos mas utilizados en entornos en

los cuales se emplea PHP ya que PHP

dispone de numerosas funciones que se

compaginan perfectamente con

MySQL.

C #: Es un lenguaje de programación

orientado a objetos desarrollado y

estandarizado por Microsoft.

Page 3: My Sql A C#

¿Cómo conectar base de datos MySQL usando C# ?

Quiero saber cómo aplicar la base de datos de MySQL en C # sin utilizar ODBC

connection.

Descargar su biblioteca ADO.NET e incluirlo en el proyecto.

2.- Agregue las instrucciones adecuadas utilizando

Para 1.- Hay que empezar abriendo visual c#

Page 4: My Sql A C#

Del lado izquierdo encontrarán la barra de herramientas, la cual contiene todos los controles que se pueden utilizar. Comencemos introduciendo 3 controles llamados TextBox a nuestro formulario. Posteriormente introducimos un control llamado Button.

Page 5: My Sql A C#

Bloque A. En dicho bloque se muestran los namespaces (Espacios de nombre)

que se usarán en nuestra clase, en este caso Form1.cs

Bloque B. En esta parte del código vemos un namespace definido con un

nombre en particular. Si notan, el namespace está formado por dos llaves ({}),

la que se encuentra al principio del código y la que se encuentra al final. Es

muy importante aprender a utilizarlos ya que nos permitirán darle un orden a

nuestro código.

Bloque C. Aquí vemos como la clase está creada con el nombre de Form1,

pero no sólo eso, no, también vemos que hereda una clase, dicha clase es

llamada Form. La herencia es tan fácil, sólo estudien bien ese término. Una

explicación muy burda de lo que es una clase sería cuando una clase obtiene

las propiedades de otra…… Hasta aquí les explicaré, ya que no es motivo de

este manual el entender conceptos básicos en la programación.

Bloque D. Aquí vemos el constructor de la clase Form el cual contiene un

método que inicia todos los controles agregados en nuestro formulario entre

otras cosas. ¿Qué es un constructor? Quizás algunos se pregunten esto,

bueno, no quiero explicarlo pues sería un poco confuso pero. Un constructor

es una clase, dichos constructores pueden ser sobrecargados y así manipular

alguna que otra propiedad a conveniencia. Se ha utilizado, así que no se

preocupen por que lo que importa en estos momentos es aprender a utilizar

MySQL con C#.

Page 6: My Sql A C#
Page 7: My Sql A C#

Utilizando App.Config

Ahora demos clic derecho sobre el icono del proyecto, sí, la cochinada negra

que encierra un icono en la imagen siguiente, situemos el icono en donde dice

Agregar y demos clic en Nuevo Elemento…

Page 8: My Sql A C#

Ahora localicemos un icono que diga

Archivo de configuración de

aplicaciones y demos doble clic sobre

él (el nombre del archivo déjenlo

como está)

Page 9: My Sql A C#

Ahora lo siguiente será agregar una cadena de conexión a nuestro App.Config, sirvepara agregar configuraciones de nuestro proyecto, entre ellas las de cadenas deconexión que nos permitirán acceder a las bases de datos. Ahora andan muy listos,claro que sí, podemos agregar muchas de cadenas de conexión y hasta reciclar

nuestro App.Config, Nadamas que ese código debe encontrarse dentro de<configuration></configuration>…. Vean la imagen mijas.

Código:

<connectionStrings><add

name="MySQLConnection" providerName="System.Data.odbc"

connectionString="Driver={MySQL ODBC 3.51 DRIVER};UID=root;Password=;Server=colibri;Option=16834;Database=test"

/></connectionStrings>

Page 10: My Sql A C#

Ahora sitúense en el editor de código de Form1.cs (simplemente den clic en el icono

llamado Form1.cs en el Explorador de soluciones y posteriormente clic en Ver código); yaencontrándose en Form1.cs, vayan a la parte en donde se definen los namespaces quese van a utilizar y agreguen dos namespaces:

Código:

using System.Data.Odbc;

using System.Configuration;

Page 11: My Sql A C#

Ahora vamos a agregar una referencia de System.Configuratio

ns; para eso vamos a Proyecto---Agregar Referencia…

Page 12: My Sql A C#

Nos aparecerá un cuadro en el cual deberemos localizar la

referencia llamada System.Configuratio n, cuando la

localicemos, damos un clic sobre ella y luego clic en

Aceptar (esta referencia es para poder utilizar una parte del

código que nos permite extraer la cadena de conexión).

Page 13: My Sql A C#

Ahora lo que resta es agregar el código, para eso copien y peguen (o mejor lean el código y escríbanlo, para

que se les quede batos flojos)

Código:

private void button1_Click(object sender, EventArgs e)

{

String strMySQLCnnString =

ConfigurationManager.ConnectionStrings["MySQLConnection"].ToString();

String strConnectionString = "SELECT * FROM tabla";

OdbcConnection odbcCnn = new OdbcConnection(strMySQLCnnString);

OdbcCommand odbcCmd = new OdbcCommand(strConnectionString,odbcCnn);

try

{

odbcCnn.Open();

OdbcDataReader odbcDr = odbcCmd.ExecuteReader();

Page 14: My Sql A C#

if (odbcDr.Read())

{

textBox1.Text = (String)odbcDr["Campo1"];

textBox2.Text = (String)odbcDr["Campo2"];

textBox3.Text = (String)odbcDr["Campo3"];

odbcDr.Close();

odbcDr.Dispose();

}

}

catch (Exception ex)

{

MessageBox.Show("Chincheros, otra vez la mamá

de putusa:" +

ex.ToString());

}

finally

{

odbcCnn.Close();

odbcCnn.Dispose();

odbcCmd.Dispose();

}

}

Page 15: My Sql A C#

Dicho código deberán ubicarlo después de la finalización del constructor

Ya terminado todo, sólo debemos ejecutar nuestra aplicación y obviamente nuestro servidor MySQL deberá estar iniciado con los requisitos que

arriba les indiqué. Deberá verse un registro como en la imagen siguiente.

Pues bueno, comencemos con la primer parte.

Código:

private void button1_Click(object sender, EventArgs e)

{

}

Esto sólo es la definición de un evento para nuestro control llamado Button1, su evento en este caso es el Click

En esta parte únicamente declaramos dos variables de tipo String las cuales son inicializadas de una vez, una con la extracción de la cadena

de conexión (strMySQLCnnString) y la otra con la consulta que vamos a realizar (strConnectionString) (me equivoqué al ponerle

ConnectionString, pero bueno, eso es lo de menos, el código aún funciona.

Código:

String strMySQLCnnString = ConfigurationManager.ConnectionStrings["MySQLConnection"].ToString();

String strConnectionString = "SELECT * FROM tabla";

En el siguiente código lo que hacemos es declarar dos variables, una del tipo odbcConnection (odbcCnn) la cual contiene la cadena de

conexión y la otra del tipo odbcCommand (odbcCmd) que contiene la consulta SQL y la conexión.

Código:

OdbcConnection odbcCnn = new OdbcConnection(strMySQLCnnString);

OdbcCommand odbcCmd = new OdbcCommand(strConnectionString,odbcCnn);

En esta parte vemos los bloques try/catch/finally los cuales nos permiten intentar una acción (try), atrapar un error (catch) y finalmente ejecutar

algo después de esos dos bloques con la diferencia de que siempre se ejecutará en el código sin importar que en cual de los bloques anteriores

pasaron nuestras instrucciones (finally)

Dentro de try encontraremos el código que nos permitirá abrir la conexión a nuestro servidor de base de datos (primer línea)

Código:

odbcCnn.Open();

Page 16: My Sql A C#

Posteriormente encontraremos la creación de una variable del tipo de DataReader con el valor de la variable del tipo

Command la cual únicamente nos especifica que el comando SQL que se ejecutó fue una consulta y no una

inserción o actualización o eliminación de información.

Código:

OdbcDataReader odbcDr = odbcCmd.ExecuteReader();

En la siguiente línea encontramos una sentencia if, la cual nos hace saber si nuestro DataReader ha leído los datos

que se consultaron, ya dentro del bloque if encontraremos que se insertan a la propiedad Text de los controles TextBox el valor de cada campo del primer registro encontrado y después se cierra el DataReader y se libera el

Garbage Collector.Código:

if (odbcDr.Read())

{textBox1.Text = (String)odbcDr["Campo1"];

textBox2.Text = (String)odbcDr["Campo2"];

textBox3.Text = (String)odbcDr["Campo3"];

odbcDr.Close();

odbcDr.Dispose();

}

Page 17: My Sql A C#

he creado un metodo publico llamado Refrescar();

el codigo es:public void Refrescar()

{

vcda = new MySqlDataAdapter("select*from usuarios", vccon);

vcda.Fill(vcds, "usuarios");

dataGrid1.DataSource = vcds.Tables["usuarios"].DefaultView;

dataGrid1.SetDataBinding(vcds, "usuarios");

}

ademas tienes que agregar lo siguiente para que funciones:

using MySql.Data.MySqlClient;

y en references le haces click secundario y agregas el connector MySql Data Client.dll

tambien no se te olvide crear publicos los siguientes metodos:

public MySqlConnection vccon = null;

public MySqlDataAdapter vcda = null;

public MySqlCommand vccomm = null;

public DataSet vcds = new DataSet();

en donde "vccon", "vcda", "vccomm" y "vcds" son las variables que utilizaras en el codigo que antes te di

para la coneccion y consulta de la base de datos.