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