Navicat MySQL (Tutorial Parte 1)

3 comentarios

En este post explicare sobre Navicat, el cual es una herramienta de gestion de base de datos que nos permitira realizar consultas y darle mantenimiento a bases de datos en SQL Server, MySQL, Oracle y SQLLite pero para este post estaremos trabajando para MySQL, este programa esta dispobible para Windows, Distribuciones Linux y Mac Os , es una alternativa al Workbench.
Navicat tiene dos versiones, una de pago y otra gratuita.

Iniciando el Programa:
Para poder utilizar el programa tenemos que tener instalado un servidor MySQL el cual pueden descargar
de aqui.
una vez uniciado el programa nos aparecera la siguiente ventana:

ventana1

Para poder conectarnos al servidor MySQL debemos seleccionar en la parte superior derecha el boton Connection el cual nos desplegara una lista de servidores a eligir, en este caso seleccionamos MySQL :

ventana2

al realizar esto nos aparecera una ventana en la cual nos pedira el nombre del servidor al cual nos queremos conectar :

coneccion

Connection Name : es el nombre de nuestra coneccion, aqui pueden colocar el nombre de su gusto.

Host Name /IP Adress : en este campo , si es un servidor local debera ir Localhost en caso de ser accedido desde la red debera ir la direccion ip donde se encuentra el servidor.

Port : es el puerto por default del servidor mysql, su valor es 3306.

User Name : es el usuario con el que se accedera al servidor MySQL, cuando se accede desde la red, se debera dar de alta un usuario dentro del servidor, este usurio debera tener los permisos y privilegios para poder acceder desde la red al servidor.

Pass: es la contraseña asignada al usuario.

Una vez realizada esta accion podremos ver en la parte superior izquierda el nombre de nuestra coneccion.

ventana4

para poder acceder a las bases de datos a las cuales tenemos acceso del servidor, es necesario dar doble click al nombre de nuestra coneccion, el color del icono de la coneccion de pondra en verde y nos mostrara las bases de datos a las que nuestro usuario tiene acceso.

ventana5

Para trabajar con una base de datos en especifico , debemos seleccionarla y dar doble click en ella para asi poder navegar y ver las tablas, vistas , procedimiento almacenados, entre otros objetos de base de datos.

ventana6

Esta es la primera parte del tutorial de Navicat para MySQL en el siguiente post explicare como realizar algunas consultas en este programa, si les sirvio no olviden comentar, cualquier duda o apoyo estoy a sus ordenes.

🙂

Les dejo el enlace para la parte 2 🙂

Alinear Divs Horizontalmente HTML

Deja un comentario

En este post explicare como alinear divs de manera horizontal desde codigo html.

Muchas veces queremos agrupar el contenido de nuestra pagina web en div, y este contenido a su vez esta dentro de un div principal
para este ejemplo creare algunos divs que se encontraran contenidos dentro de un div principal:

 <div>
        <div style=" width:20px; height:50px; background-color :Red; border:1px solid black;"></div>
        <div style=" width:20px; height:50px; background-color :Red; border:1px solid black;" ></div>
        <div style=" width:20px; height:50px; background-color :Red; border:1px solid black;" ></div>
        <div style=" width:20px; height:50px; background-color :Red; border:1px solid black;" ></div>
   </div>

El resultado sera el siguiente :

para lograr que lo divs se acomoden de manera horizonal tenemos que darle el valor de left a la propiedad Float

 <div>
        <div style="float:left; margin-right:10px; width:20px; height:50px; background-color :Red; border:1px solid black;"></div>
        <div style="float:left; margin-right:10px; width:20px; height:50px; background-color :Red; border:1px solid black;" ></div>
        <div style="float:left; margin-right:10px; width:20px; height:50px; background-color :Red; border:1px solid black;" ></div>
        <div style="float:left; margin-right:10px; width:20px; height:50px; background-color :Red; border:1px solid black;" ></div>
   </div>

y el resultado sera el siguiente :



Espero les halla servido , no olviden comentar :3

SQL Dinamico (Dinamic SQL)

Deja un comentario

Bueno en este post tratare de explicar la definicion del SQL Dinamico.

primero ¿Que es el SQL Dinamico?

Las sentencias dinámicas se refieren a aquellas sentencias que son generadas durante la ejecución de un script. Por ejemplo se puede generar un store procedure con variables para construir una sentencia SELECT que incorpore esas variables.
Las sentencias dinámicas siempre van acompañadas de la palabra EXECUTE (Transact-SQL) con strings y variables. SQL Server determina el valor de las variables conforme se va ejecutando el script.

Se debe de tomar en cuenta al construir sentencias SQL Dinámicas lo siguiente:

Las variables utilizadas deben de ser de tipo carácter, si se quieren usar valores numéricos primero deben de convertirse a carácter.
Se pueden iterar múltiples sentencias dinámicas
No se pueden usar funciones dentro de sentencias dinámicas

El SQL dinámico no es mas que una sola instrucción Transact-SQL o un conjunto de instrucciones almacenadas en una variable y ejecutado mediante un comando SQL, es decir nosotros mismos podemos armar nuestra consulta de acuerdo a los requerimientos que tengamos y despues ejecutarla para obtener los resultados deseados.

No puedo decir definitivamente que el SQL estático reunirá todas nuestras necesidades de programación.
a veces el SQL dinámico es necesario cuando tenemos que recuperar un conjunto de registros según diferentes parámetros de búsqueda.

por ejemplo: tenemos una tabla venta, y queremos ordenar las ventas segun sea el parametro que le pasemos a nuestro procedimiento,
podemos realizar ordenamiento por numero de factura, por fecha, por monto, esto en el sql estatico podria ser muy tedioso y podria obligarnos a repetir codigo, lo cual a veces seria muy tedioso para la lectura del script.

Por ejemplo

DECLARE @tabla varchar(20), @bd varchar(20)
SET @tabla = ‘authors’
SET @bd = ‘pubs’
EXECUTE (‘USE ‘+ @bd + ‘SELECT * FROM ‘ + @tabla )

Espero les halla servido este post, cualquier duda o comentario estoy a sus ordenes
Saludos.

links de referencia:

http://www.dbasupport.com.mx/index.php?option=com_content&view=article&id=45:Maneras%20de%20ejecutar%20sentencias%20SQL&catid=11:administracion

http://www.codeproject.com/Articles/20815/Building-Dynamic-SQL-In-a-Stored-Procedure

Colocar una imagen en un boton en WPF

Deja un comentario

Bueno en esta entrada mostrare como colocar un icono a un boton en WPF.

el código es el siguiente:

  <Button Width="100" Height="40" Margin="0,0,10,0">
                        <Button.Content>
                            <StackPanel Orientation="Horizontal">
                                <Image Source="/TuCarpeta/TuImagen.png" Width="25" Height="25" />
                                <Label Content="Hola " />
                            </StackPanel>
                        </Button.Content>
                    </Button>

Espero les halla servido esta entrada , si asi fue no duden comentar =).

Ventajas de una aplicación Web basada en MVC

Deja un comentario

El ASP.NET MVC framework ofrece las siguientes ventajas:

  • Resulta más fácil de administrar la complejidad dividiendo una aplicación en el modelo, la vista y el controlador.
  • No utiliza el ViewState o formularios basadas en servidor.
    Esto hace que el framework MVC ideal para desarrolladores que quieren control total sobre el comportamiento de una aplicación.
  • Utiliza un patrón de controlador frontal que procesa las solicitudes de aplicación Web a través de un único controlador.
    Esto le permite diseñar una aplicación que soporta una rica infraestructura de enrutamiento.
  • Proporciona mayor compatibilidad para test-driven development (TDD).
  • Funciona bien para aplicaciones Web que son apoyadas por grandes equipos de desarrolladores y diseñadores Web que necesitan un alto grado de control sobre el comportamiento de la aplicación.

Ventajas de una aplicación Web basada en formularios de Web

Deja un comentario

El marco basado en formularios Web Forms ofrece las siguientes ventajas:

  • Es compatible con un modelo de eventos que conserva el estado sobre HTTP, que beneficia el desarrollo de aplicaciones Web de línea de negocios. La aplicación basada en formularios Web Forms proporciona decenas de eventos que son compatibles con cientos de controles de servidor.
  • Utiliza un patrón de controlador de la página que agrega funcionalidad a las páginas individuales.
  • Utiliza el ViewState o formularios basados en servidor, que pueden facilitar información sobre el estado general.
  • Funciona bien para pequeños equipos de desarrolladores Web y diseñadores que quieren aprovechar la gran cantidad de componentes disponibles para desarrollo rápido de aplicaciones.
  • En general, es menos compleja para desarrollo de aplicaciones, porque los componentes (la clase de página , controles y así sucesivamente) están bien integrados y por lo general requieren menos código que el modelo MVC.

MVC

Deja un comentario

Bueno en esta ocasión dedicare esta entrada que es una breve introducción al patrón MVC , ya que ahora en mi nuevo trabajo estaré desarrollando para esta tecnología, así que veamos un poco de teoría =) .

El patrón de arquitectura Model-View-Controller (MVC) separa una aplicación en tres componentes principales: el modelo, la vista y el controlador. El ASP.NET MVC framework ofrece una alternativa al patrón de ASP.NET Web Forms para crear aplicaciones Web basadas en MVC. El marco de ASP.NET MVC es un marco de presentación de peso ligero, altamente comprobable que (como con aplicaciones basadas en formularios Web Forms) se integra con las características ASP.NET existentes, tales como páginas maestras y autenticación basada en membresía. El framework MVC se define en el espacio de nombres System.Web.Mvc y es una parte fundamental, con el apoyo del espacio de nombres System.Web .

MVC es un patrón de diseño estándar con el que muchos desarrolladores están familiarizados. Algunos tipos de aplicaciones Web podrán aprovechar el marco MVC. Otros continuará utilizando el patrón de aplicación ASP.NET tradicional basada en formularios Web Forms y las devoluciones de datos. Otros tipos de aplicaciones Web combinará los dos enfoques; ninguno de los dos enfoque excluye la otra.

MVC framework incluye los siguientes componentes:

mvc

Modelos. Los objetos de modelo son la parte de la aplicación que implementa la lógica para el dominio de datos de aplicaciones. A menudo, objetos del modelo de recuperan y almacenan el estado de la modelo en una base de datos. Por ejemplo, un objeto producto podría recuperar la información de una base de datos, operar en él y entonces escribir información actualizada de nuevo en una tabla de productos de SQL Server.

En pequeñas aplicaciones, el modelo es a menudo una separación conceptual en lugar de una física. Por ejemplo, si la aplicación sólo lee un conjunto de datos y envía a la vista, la aplicación no tiene una capa de modelo físico y clases asociadas. En ese caso, el conjunto de datos asume el papel de un objeto del modelo.

Views. Vistas son los componentes que muestran la interfaz de usuario de aplicación s (UI). Por lo general, esta interfaz de usuario se crea a partir de los datos del modelo. Un ejemplo sería una vista de edición de una tabla de productos que muestra cuadros de texto, listas desplegables, casillas de verificación basadas en el estado actual de un objeto de productos.

Controladores. Los controladores son los componentes que manejan la interacción con el usuario, trabajan con el modelo y en última instancia, seleccione una vista para representar que muestra la interfaz de usuario. En una aplicación MVC, la vista sólo muestra información; el controlador maneja y responde a la entrada del usuario y la interacción. Por ejemplo, el controlador trata los valores de cadena de consulta y pasa estos valores al modelo, que a su vez consulta la base de datos con los valores.

El patrón MVC le ayuda a crear aplicaciones que separan los distintos aspectos de la aplicación (entrada lógica, lógica de negocio y lógica de la interfaz de usuario), mientras que proporciona un acoplamiento flexible entre estos elementos. El patrón especifica donde debe colocarse cada tipo de lógica en la aplicación. La lógica de la interfaz de usuario pertenece desde el punto de vista. Entrada lógica pertenece en el controlador. Lógica empresarial pertenece en el modelo. Esta separación le ayuda a administrar la complejidad cuando se compila una aplicación, porque le permite centrarse en un aspecto de la aplicación a la vez. Por ejemplo, usted puede centrarse en la vista sin según la lógica de negocio.

Además de gestionar la complejidad, el patrón MVC facilita probar aplicaciones de lo que es para probar una aplicación Web de ASP.NET basadas en formularios Web Forms. Por ejemplo, en una aplicación Web de ASP.NET basadas en formularios Web Forms, una sola clase se utiliza para mostrar la salida y para responder a la entrada del usuario. Escribir pruebas automatizadas para aplicaciones ASP.NET basadas en formularios Web Forms puede ser complejo, porque para probar una página individual, debe instanciar la clase de página, todos sus controles secundarios y las clases dependientes adicionales en la aplicación. Porque se crean instancias de tantas clases para ejecutar la página, puede ser difícil de escribir las pruebas que se centran exclusivamente en las partes individuales de la aplicación. Pruebas para aplicaciones ASP.NET basadas en formularios Web Forms, por tanto, pueden ser más difíciles de aplicar que las pruebas en una aplicación MVC. Por otra parte, pruebas en una aplicación ASP.NET basadas en formularios Web Forms requieren un servidor Web. El framework MVC desacopla los componentes y hace un uso intensivo de interfaces, que le permite probar los componentes individuales en aislamiento del resto del marco.

El acoplamiento flexible entre los tres principales componentes de una aplicación MVC también promueve desarrollo paralelo. Por ejemplo, un desarrollador puede trabajar en la vista, un segundo desarrollador puede trabajar en la lógica del controlador, y un tercer desarrollador puede centrarse en la lógica de negocio en el modelo.

El articulo original en ingles se encuentra en la siguiente pagina :3.

http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview

Saludos.

Leer hoja de Excel desde C# y Mostrarlos en DataGridView (Read excel file en view in DataGridView C#)

59 comentarios

Bueno, en esta ocacion les traigo una aplicacion la cual consiste en leer los datos de una hoja de excel y mostrarlos en un DataGridView.

Para este ejemplo , el diseño del formulario sera el siguiente:

grid

Ahora damos doble click en el boton buscar y pasaremos a crear el codigo correspondiente:

Importamos la libreria System.Data.OleDb a nuestro proyecto utilizando using System.Data.OleDb;

ahora creamos un metodo llamado LlenarGrid que reciba como parametro la ruta del archivo que vamos a abrir y la hoja que vamos a leer, estos deben ser de tipo string.

el codigo del metodo es el siguiente:


 private void LLenarGrid(string archivo,string hoja)
        {
            //declaramos las variables         
            OleDbConnection conexion = null;
            DataSet dataSet = null;
            OleDbDataAdapter dataAdapter = null;           
            string consultaHojaExcel = "Select * from [" + hoja + "$]";

            //esta cadena es para archivos excel 2007 y 2010
            string cadenaConexionArchivoExcel = "provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + archivo + "';Extended Properties=Excel 12.0;";
           
            //para archivos de 97-2003 usar la siguiente cadena
            //string cadenaConexionArchivoExcel = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + archivo + "';Extended Properties=Excel 8.0;";

            //Validamos que el usuario ingrese el nombre de la hoja del archivo de excel a leer
            if (string.IsNullOrEmpty(hoja))
            {
                MessageBox.Show("No hay una hoja para leer");
            }
            else
            {
                try
                {
                    //Si el usuario escribio el nombre de la hoja se procedera con la busqueda
                    conexion = new OleDbConnection(cadenaConexionArchivoExcel);//creamos la conexion con la hoja de excel
                    conexion.Open(); //abrimos la conexion
                    dataAdapter = new OleDbDataAdapter(consultaHojaExcel, conexion); //traemos los datos de la hoja y las guardamos en un dataSdapter
                    dataSet = new DataSet(); // creamos la instancia del objeto DataSet
                    dataAdapter.Fill(dataSet, hoja);//llenamos el dataset
                    dataGridView1.DataSource = dataSet.Tables[0]; //le asignamos al DataGridView el contenido del dataSet
                    conexion.Close();//cerramos la conexion
                    dataGridView1.AllowUserToAddRows = false;       //eliminamos la ultima fila del datagridview que se autoagrega
                }
                catch (Exception ex)
                {
                    //en caso de haber una excepcion que nos mande un mensaje de error
                    MessageBox.Show("Error, Verificar el archivo o el nombre de la hoja",ex.Message);
                }
            }
        }

Ahora el boton buscar tendra el siguiente codigo:

 private void button1_Click(object sender, EventArgs e)
        {
            //creamos un objeto OpenDialog que es un cuadro de dialogo para buscar archivos
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "Archivos de Excel (*.xls;*.xlsx)|*.xls;*.xlsx"; //le indicamos el tipo de filtro en este caso que busque
            //solo los archivos excel

            dialog.Title = "Seleccione el archivo de Excel";//le damos un titulo a la ventana

            dialog.FileName = string.Empty;//inicializamos con vacio el nombre del archivo

            //si al seleccionar el archivo damos Ok
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                //el nombre del archivo sera asignado al textbox
                txtArchivo.Text = dialog.FileName;
                hoja = txtHoja.Text; //la variable hoja tendra el valor del textbox donde colocamos el nombre de la hoja
                LLenarGrid(txtArchivo.Text,hoja); //se manda a llamar al metodo

                dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //se ajustan las
                //columnas al ancho del DataGridview para que no quede espacio en blanco (opcional)
            }      
        }

Espero les sirva, si les sirvio no olviden comentar, cualquier duda estoy a sus ordenes.
Saludos.

Paginas de referencia en VB : http://blog.desarrolladoresmx.net/2012/10/04/importar-de-un-archivo-de-excel-a-un-datagridview/

Procedimientos Almacenados en MySQL

6 comentarios

En este post vamos a crear un procedimiento almacenado en MySQL, pasa conocer un poco de teoria sobre los procedimientos almacenados pueden leer la informacion de la siguiente pagina:

http://es.wikipedia.org/wiki/Procedimiento_almacenado

para este ejemplo creare un procedimiento almacenado el cual insertara datos en una tabla de ejemplo.


DELIMITER $$

CREATE PROCEDURE  ProcedimientoInsertar
(
in Nombre varchar(50),
in Telefono varchar(50)
)
BEGIN
insert into contactos(nombre,telefono) values(Nombre,Telefono);
END

para llamar al procedimiento almacenado se utiliza la instruccion call seguida del nombre del procedimiento almacenado , entre parentesis el valor de las variables que recibira.


CALL ProcedimientoInsertar('Valor del campo nombre','Valor del campo Telefono')

Ahora pasare con la explicacion del codigo fuente.

El primer comando es DELIMITER / / , que no está relacionado con la sintaxis del procedimiento almacenado. El delimitador de sentencia cambia el delimitador estándar, que es punto y coma (;) a otro. En este caso, el delimitador se cambia desde el punto y coma (;) para dobles barras inclinadas / /. ¿Por qué tenemos que cambiar el delimitador? Porque queremos pasar el procedimiento almacenado en el servidor como un todo en lugar de dejar la herramienta mysql interpreta cada instrucción en un momento en que tipo. Después de la palabra clave END, utilizamos delimitador / / para indicar el final del procedimiento almacenado. La última orden (DELIMITER;) cambia el delimitador posterior a la norma que es el punto y coma (;).

La sentencia CREATE PROCEDUR E se utiliza para crear un nuevo procedimiento almacenado. Se especifica el nombre del procedimiento almacenado después de la sentencia CREATE PROCEDURE. En este caso, el nombre del procedimiento almacenado es ProcedimientoInsertar. No se olvide el paréntesis después del nombre del procedimiento almacenado o se obtendrá un mensaje de error.

Lo que esta dentro de los parentesis son los campos que el procedimiento almacenado recibira para poder realizar las operaciones donde se utilizaran, en este caso seran las variables a insertar.
antes del nombre de cada variable se debe colocar IN que indica que es un parametro de entrada.

El codigo entre BEGIN y END se llama cuerpo del procedimiento almacenado.es el código SQL declarativo dentro del cuerpo del procedimiento almacenado para manejar la lógica de negocio.
En este procedimiento almacenado, se utilizó la instrucción INSERT para insertar datos en una tabla de ejemplo.

Paginas de referencia :

http://www.mysqltutorial.org/getting-started-with-mysql-stored-procedures.aspx

espero les halla servido este post.
si les sirvio comenten.
Saludos.

Agregar librerias para trabajar con MySql en C#

4 comentarios

En este post explicare como agregar las librerias para poder trabajar desde C# con bases de datos realizadas en MySQL.

Primero necesitamos las librerías, podemos bajar el instalador desde la pagina oficial de MySql o desde mi servidor de archivos.

si quieren bajarlas desde mi servidor de archivos aqui les dejo el link para que las descarguen.

https://www.dropbox.com/s/5yp5cwssd3atw3l/Dlls%20MySQL.rar

una ves que se descarguen, descomprimir el archivo, abrimos un nuevo proyecto en visual studio 2010
en la parte derecha, en el explorador de soluciones damos click derecho en References, nos aparecera un menu en el cual seleccionaremos agregar referencia o add reference
y nos aparecera una pantalla donde seleccionaremos la dll a utilizar.

seleccionamos la pestaña browse o navegar y buscamos en el directorio donde se extrajeron las dlls y las seleccionamos y damos aceptar.

despues de realizar estos pasos podemos ver que ya estan agregadas las DLLS para trabajar con MySql.

imagen4

Espero les sirva este post.
cualquier duda o comentario estoy a sus ordenes.
no olviden comentar :).

Older Entries Newer Entries