• Desarrollo de Software

    Aprenda a crear aplicaciones con los diferentes lenguajes de programación, de forma práctica y divertida. Mas
  • Curso de Programación en Java

    Plataforma virtual de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. Mas
  • Programación de aplicaciones

    La programación informática, a menudo acortada como programación, es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales Mas
Mostrando entradas con la etiqueta SQL Server 2014. Mostrar todas las entradas

Libreria C# para conexion y ejecución de procedure Sql Server


Una biblioteca es una colección o conjunto de subprogramas usados para desarrollar software. En general, las bibliotecas no son ejecutables, pero sí pueden ser usadas por ejecutables que las necesitan para poder funcionar correctamente.


Desarrollo de la librería:


La siguiente librería propuesta consta de dos clases y un archivo XML, los cuales nos van a permitir de una manera mucho más práctica y fácil, la conexión y mantenimiento de una base de datos principalmente el motor de Microsoft SQL Server 2014.

Primero cabe mencionar que para manipular el String de conexión, dado que es una librería (Archivo DLL), lo haremos por medio del XML ya mencionado. Este archivo contiene los siguientes elementos:



Código principal de la librería:


Luego necesitaremos una clase que le llamaremos Parametros, para poder leer el archivo XML y crear el String de conexión.


public class Parametros
{
        #region Atributos
        private string servidor;
        private string baseDatos;
        private string usuario;
        private string clave;
        private bool seguridadIntegrada;
        private string archivoParametros;
        private string cadenaConexion;
        private string error;
        private XmlDocument xml = new XmlDocument();
        private XmlNode nodo;
        #endregion

        #region Constructor
        public Parametros()
        {
            servidor = "";
            baseDatos = "";
            usuario = "";
            clave = "";
            seguridadIntegrada = true;
            archivoParametros = "";
            cadenaConexion = "";
            error = "";
        }

        #endregion
        #region Propiedades
        public string CadenaConexion
        {
            get { return cadenaConexion; }
        }

        public string Error {
            get { return error; }
        }

        #endregion
        #region Métodos Públicos
        public bool GenerarCadenaConexion(string nomArchivoParametros)
        {
            archivoParametros = Application.StartupPath + "\\" + nomArchivoParametros;
            try
            {
                xml.Load(archivoParametros);
                nodo = xml.SelectSingleNode("//Servidor");
                servidor = nodo.InnerText;
                nodo = xml.SelectSingleNode("//BaseDatos");
                baseDatos = nodo.InnerText;
                nodo = xml.SelectSingleNode("//Usuario");
                usuario = nodo.InnerText;
                nodo = xml.SelectSingleNode("//Clave");
                clave = nodo.InnerText;
                nodo = xml.SelectSingleNode("//SeguridadIntegrada");
                seguridadIntegrada = Convert.ToBoolean(nodo.InnerText);
                if (seguridadIntegrada)//autenticación windows
                {
                    cadenaConexion = "Data Source=" + servidor
                        + ";Initial Catalog=" + baseDatos
                        + ";Integrated Security=True";
                }
                else
                {
                    cadenaConexion = "Data Source=" + servidor
                           + ";Initial Catalog=" + baseDatos
                           + "; User id=" + usuario
                           + ";Password=" + clave
                           + ";Integrated Security=False";
                }
                xml = null;
                return true;
            }
            catch (Exception ex)
            {
                error = ex.Message;
                xml = null;
                return false;
            }
        }
        #endregion
} 

Seguidamente crearemos otra clase con el nombre ConexionBD, la cual a partir del String de conexión anteriormente creado, podamos crear la conexión y los respectivos métodos en los que vamos a interactuar con la base de datos.


public class ConexionBD
{
        #region Atributos
        private string archivoParametros;
        private string cadenaConexion;
        private string error;
        private bool hayConexion;
        private SqlConnection con;
        private SqlCommand cmd;
        private SqlDataReader dr;
        #endregion
        #region Propiedades
       
        public SqlDataReader Dr
        {
            get { return dr;}
        }

        public SqlConnection Con
        {
        get{return con;}
        }

        public string Error
        {
        get{return error;}
        }


        #endregion
        #region Constructor
        public ConexionBD(string archParametros)
        {
            this.archivoParametros = archParametros;
            hayConexion = false;
            con = new SqlConnection();
            cmd = new SqlCommand();
           
            CerrarConexion();
        }

        #endregion
        #region Métodos Privados
        private bool G_CadenaConexion()
        {
            try
            {
                Parametros parametros = new Parametros();
                if (!parametros.GenerarCadenaConexion(archivoParametros)) 
                {
                    error = parametros.Error;
                    parametros = null;
                    return false;
                }
                cadenaConexion = parametros.CadenaConexion;
                parametros = null;
                return true;
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return false;
            }        
        }

        #endregion
        #region Métodos públicos
        //método conectar ala bd
        public bool AbrirConexion()
        {
            if (!G_CadenaConexion()) return false;
            con.ConnectionString = cadenaConexion;
            try
            {
                con.Open();
                hayConexion = true;
                return true;

            }
            catch (Exception exception)
            {
                error = exception.Message;
                hayConexion = false;
                return false;
            }
        }

        //cerrar conexion
        public void CerrarConexion()
        {
            try
            {
                con.Close();
                hayConexion = false;
            }
            catch (Exception exception)
            {
                error = "No se cerró la conexion correctamente..!"+exception.Message;  
            }
        }

        //método llenar DataTable
        public DataTable GetDatosTabla(string nomprocedimiento, 
            string[] nomparametros, params Object[] valParametros)
        {
            DataTable dt = new DataTable();
            cmd.Connection = con;
            cmd.CommandText = nomprocedimiento;
            cmd.CommandType = CommandType.StoredProcedure;
            if (nomprocedimiento.Length!=0 &&
                nomparametros.Length==valParametros.Length)
            {
                int i = 0;
                foreach (string parametro in nomparametros)
                    cmd.Parameters.AddWithValue(parametro,valParametros[i++]);
                try
                {
                    dr = cmd.ExecuteReader();
                    dt.Load(dr);
                    return dt;                    
                }
                catch (Exception ex)
                {
                    error = ex.Message;                   
                }
            }
            return dt;            
        }

        //método ejecutar procedure (transacción)
        public int Ejecutar(string nomprocedimiento,
           string[] nomparametros, params Object[] valParametros)
        {
            DataTable dt = new DataTable();
            cmd.Connection = con;
            cmd.CommandText = nomprocedimiento;
            cmd.CommandType = CommandType.StoredProcedure;
            if (nomprocedimiento.Length != 0 &&
                nomparametros.Length == valParametros.Length)
            {
                int i = 0;
                foreach (string parametro in nomparametros)
                    cmd.Parameters.AddWithValue(parametro, valParametros[i++]);
                try
                {
                    return cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    error = ex.Message;                   
                }
            }
            return 0;             
        }
        #endregion
    }


Demostración de la librería:


La complementación y uso de la misma, se los mostraré en una serie de vídeos muy explicativos, para que puedan divisar el potencial de esta hermosa librería, la cual nos va ayudar con una rápida y sólida creación de nuestros proyectos, tanto web como de escritorio.


Conexion sql server 2014 con Visual Studio 2013. Modelo tres capas


La arquitectura está basada en un modelo de tres capas: Capa de datos, Capa de lógica de negocio y Capa de presentación, que soportan todas las funcionalidades necesarias.

En este pequeño pero muy rico vídeo tutorial, podemos ver una de las indistintas formas que hay para poder realizas una conexion desde el motor de base de datos sql server, en mi caso uso el 2014 (última versión), en donde implemento el modelo tres capas. 

La primera, es la capa Datos: Donde se realizan los respectivos métodos para conectarnos a nuestra base de datos. La segunda, es la lógica del negocio como se le conoce. En esta implemento los métodos para llenar un DataTable, para dispones después de los datos y así manipularlos. No olvidar que la capa "Lógica del negocio", hace uso de la capa de Datos, la cual debemos referenciarla.

Y por último, la capa de presentación. En esta capa resto importancia al diseño de la página, dado que es una aplicación ASP. Lo que si podremos ver en el vídeo tutorial, es la implementación de un mantenimiento total de la base de datos, como lo es: Insertar, Modificar, Eliminar, Consultar y Mostrar los respectivos datos. 

Cave la pena mencionar que la base de datos fue diseñada con procedimientos almacenados, ya que estos hacen de la aplicación que sea más robusta y de fácil mantenimiento (recomendado).


Modelo de tres capas:


Capa de datos




Capa lógica del negocio



Capa de presentación



Demostración de la conexión:


Para una mayor comprensión de cada método elaborado, los invito a ver la solución en el siguiente video:

Instalación de SQL Server 2014 en Windows 8.1


SQL Server, la base de la amplia plataforma de datos de Microsoft, ofrece un rendimiento fiable gracias a la integración de tecnologías en memoria, una rápida obtención de información útil a partir de cualquier tipo de datos, con herramientas que todos conocemos, como Excel, y una plataforma para compilar, implementar y administrar soluciones tanto locales como en nube.