my sql a c#

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

Upload: deiccy-anahi

Post on 10-Jun-2015

3.912 views

Category:

Documents


3 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#

Para comenzar primeramente hay que definir que es MySQL y que Visual 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.ConfigAhora 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, sirve para agregar configuraciones de nuestro proyecto, entre ellas las de cadenas de conexió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); ya encontrándose en Form1.cs, vayan a la parte en donde se definen los namespaces que se 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.