miércoles, 26 de octubre de 2011

Objeto para conexión a base de datos

Hola a todos, con la finalidad de unificar la forma en la que se realizarán las conexiones a base de datos para el proyecto de programación, propongo la creación de una clase única que nos sirva a todos para conectarnos y ejecutar procedimientos almacenados contra la base de datos, de esta manera será mucho más sencillo utilizarla y darle mantenimiento.

A continuación les pongo un código propuesta para realizar esta tarea.  Este código ya ha sido probado.

Saludos y quedo en espera de sus comentarios


using System;
using System.Collections.Generic;

using System.Web;
using System.Data.SqlClient;
using System.Data;

namespace Maestria.Objects
{
    public class DBConnect
    {
        System.Data.SqlClient.SqlConnection conn;
        private string _connString;

        public DBConnect(string pConnString)
        {
            this._connString = pConnString;
        }

          public ConnectionState openConnection()
        {
            System.Data.ConnectionState connState;

            conn = new System.Data.SqlClient.SqlConnection(_connString);
            try
            {
                conn.Open();
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw (ex);
            }
            finally
            {
                connState = conn.State;
            }
            return connState;
        }

        public void closeConnection()
        {
            try
            {
                conn.Close();
            }
            catch (SqlException ex)
            {
                throw (ex);
            }
        }

        public System.Data.DataSet ExecuteSP(string spName, System.Collections.ArrayList parameters)
        {
            DataSet ds = null;
            SqlDataAdapter dataAdapter = null;
            SqlCommand command = null;

            try
            {
                command = new SqlCommand();
                command.Connection = conn;
                command.CommandText = spName;
                command.CommandType = CommandType.StoredProcedure;

                // Add the parameter to the Parameters collection.              
                foreach (SqlParameter param in parameters)
                    command.Parameters.Add(param);

                //Fill in the dataset
                ds = new DataSet();
                dataAdapter = new SqlDataAdapter(command);
                dataAdapter.Fill(ds);

                return ds;
            }
            catch (SqlException ex)
            {
                throw (ex);
            }
        }

        public System.Data.DataSet ExecuteSP(string spName)
        {
            DataSet dataSet = null;
            SqlDataAdapter dataAdapter = null;
            SqlCommand command = null;

            try
            {
                command = new SqlCommand();
                command.Connection = conn;
                command.CommandText = spName;
                command.CommandType = CommandType.StoredProcedure;

                //Fill in the dataset
                dataSet = new DataSet();
                dataAdapter = new SqlDataAdapter(command);
                dataAdapter.Fill(dataSet);
            }
            catch (SqlException ex)
            {
                throw (ex);
            }
            finally
            {

            }
            return dataSet;
        }

        public byte[] ExecuteSPI(string spName)
        {
            byte[] array;
            SqlCommand command = null;
            object obj;

            try
            {
                command = new SqlCommand();
                command.Connection = conn;
                command.CommandText = spName;
                command.CommandType = CommandType.StoredProcedure;
                obj = command.ExecuteScalar();
                array = (byte[])obj;

                return array;

            }
            catch (SqlException ex)
            {
                throw (ex);
            }
            finally
            {

            }
        }  
    }
}

No hay comentarios:

Publicar un comentario

Seguidores