Publicidad

Código fuente, ADO.NET (c#) - Clase de acceso a SQL Server.


Por Alex el 30/06/2008 , Comentar el artículo

Comparte este artículo:        




Algo muy común en todo proyecto es el acceso a datos, y también es muy común que cuando abordamos un nuevo proyecto nos creamos nuestra clase de acceso a datos. Aquí voy a dejaros una clase de acceso a datos que podréis reutilizar en todos los proyectos.


Algo muy común en todo proyecto es el acceso a datos, y también es muy común que cuando abordamos un nuevo proyecto nos creamos nuestra clase de acceso a datos. Aquí voy a dejaros una clase de acceso a datos que podréis reutilizar en todos los proyectos.;Esta clase se compone de cinco métodos públicos y dos métodos privados. Primero explico los métodos que componen la clase y después con un ejemplo explico cómo se utilizan estos métodos.

La clase de acceso a datos requiere en la aplicación que la utilice ya sea en el web.config o en el app.config, la siguiente entrada:

<connectionStrings>
<add name="SqlConnectionString"
connectionString="Server=localhost;Database=Northwind;Uid=sa;Pwd=as;
Trusted_Connection=false;" providerName="System.Data.SqlClient"/>
</connectionStrings>

Métodos públicos:
  • Connection: Abre una conexión a la base de datos
  • Close: Cierra la conexión a la base de datos
  • ExecuteDataSet: Devuelve un DataSet
  • ExecuteScalar: Devuelve un valor de tipo Object
  • ExecuteNonQuery: Devuelve un entero si ha ido bien o mal la ejecución de la sentencia.
    Métodos privados:
  • PrepareCommand: Este método asigna y prepara las conexiones para ejecutar las sentencias.
  • AttachParameters: Adjunta los parámetros al SqlComand (si la sentencia tiene parámetros)
    Método Connection

    public static void Connection(string ConnectionString)

    Este método opcionalmente puede recibir la cadena de conexión, en la llamada la cadena de conexión podría dejarse en blanco y se cogería por defecto el valor del web.config:

    <connectionStrings>
    <add name="SqlConnectionString"
    connectionString="Server=localhost;Database=Northwind;Uid=sa;Pwd=as;
    Trusted_Connection=false;" providerName="System.Data.SqlClient"/>
    </connectionStrings>

    Método Close

    public static void Close()

    Cierra la conexión anteriormente abierta. Método ExecuteDataSet

    public static DataSet ExecuteDataset(CommandType commandType, string commandText)
    public static DataSet ExecuteDataset(CommandType commandType, string commandText, params SqlParameter[] commandParameters) {

    Este método devuelve un conjunto de registros en un DataSet y se utiliza para lanzar sentencias SELECT.

    Si se han ejecutado multiples querys las devolverá en tantas tablas como querys se hayan ejecutado, ver ejemplo.

    La primera llamada al método es para el caso que el stored procedure no tenga parámetros o se ejecute una sentencia SQL.

    En el segundo caso cargamos los parámetros en un SqlParameter.

    Método ExecuteScalar

    public static object ExecuteScalar(CommandType commandType, string commandText)
    public static object ExecuteScalar(CommandType commandType, string commandText, params SqlParameter[] commandParameters)

    Este método devuelve un valor de tipo objeto que posteriormente tenemos que transformar a lo que nos interese. Y se utiliza para lanzar sentencias SELECT.

    Método ExecuteNonQuery:

    public static int ExecuteNonQuery(CommandType commandType, string commandText)
    public static int ExecuteNonQuery(CommandType commandType, string commandText, params SqlParameter[] commandParameters) {

    Se utiliza para sentencias INSERT, DELETE o UPDATE y devuelve un 1 o 0 según el resultado es correcto o no.

    Como podéis comprobar los tres métodos públicos de acceso a datos (ExecuteDataSet, ExecuteScalar y ExecuteNonQuery ) son similares y tiene los mismo parámetros para facilitar su uso.
    Ahora vamos a ver un ejemplo de utilización de estos métodos para ver su sintaxis y lo fáciles que son de utilizar.

    Junto a la librería de acceso a datos (MSSQL) dejo también una aplicación web donde hay unos selects, inserts, updates y deletes de ejemplo. Estos ejemplos utilizan la base de datos Northwind que podéis bajaros de aquí. También encontrareis un fichero llamado storeds.sql donde están las stored procedures que he creado para el ejemplo, solo tenéis que ejecutar el script en la base de datos Northwind y se crearan los stored procedures.

    Los ejemplos de estos tres métodos son muy similares, antes de utilizar la librería tenemos que añadirla a las referencias y hacer un using de la dll:

    using netveloper.DataManager;

    ExecuteDataSet ejecutando una sentencia SQL

    Primero creamos la conexión, como en el web.config he creado la conexión no es necesario que aquí la especifique.

    MSSQL.Connection("");

    Llamamos al método ExecuteDataser y le pasamos el tipo de comando, en este caso una sentencia SQL, y la sentencia SQL.

    DataSet DS = MSSQL.ExecuteDataset(CommandType.Text, "SELECT DISTINCT Country, Country as pais FROM Customers ORDER BY Country");

    Cerramos la conexión

    MSSQL.Close();

    ExecuteDataSet ejecutando un stored procedure sin parámetros Abrimos la conexión

    MSSQL.Connection("");

    Llamamos al método ExecuteDataset y le pasamos el tipo de comando, en este caso un stored procedure y el nombre del stored procedure.

    DataSet DS = MSSQL.ExecuteDataset(CommandType.StoredProcedure, "listar_customers");

    Cerramos conexión.

    MSSQL.Close();

    ExecuteDataSet ejecutando un stored procedure con parámetros Los parámetros los pasaremos con un array de parámetros SqlParameter. Definimos el array de parámetros, en este caso 1 parametro

    SqlParameter[] param = new SqlParameter[1];

    Definimos el parámetro, el nombre (igual que en el stored procedure), el tipo y el valor.

    param[0] = new SqlParameter("pais", SqlDbType.VarChar); param[0].Value = dpCiudad.SelectedItem.ToString();

    Abrimos la conexion

    MSSQL.Connection("");

    Ejecutamos la consulta pasándole el array de parametros.

    DataSet DS = MSSQL.ExecuteDataset(CommandType.StoredProcedure, "listar_customers_parametros", param);

    Cerramos la conexion

    MSSQL.Close();

    ExecuteScalar Para este método sólo he preparado un ejemplo ejecutando una stored procedure con parametros.

    En este ejemplo tambien veremos cómo pasar el string de conexión en lugar de utilizar el del web.config.

    Definimos el string de conexión a la base de datos.

    string Conexion = "Server=localhost;Database=Northwind;Uid=sa;Pwd=as;";

    Definimos el array de parámetros y el parámetro que le pasamos al stored procedure.

    SqlParameter[] param = new SqlParameter[1]; param[0] = new SqlParameter("codigo2", SqlDbType.VarChar); param[0].Value = dpcodigo2s.SelectedItem.ToString();

    Abrimos la conexión pasándole el string de conexión creado anteriormente.

    MSSQL.Connection(Conexion);

    Ejecutamos el stored procedure y nos devolvera un valor que tenemos que convertir a string.

    Label1.Text = MSSQL.ExecuteScalar(CommandType.StoredProcedure, "listar_CompanyName", param).ToString();

    Cerramos la conexión.

    MSSQL.Close();

    ExecuteNonQuery Igual que en el ejemplo anterior solo he preparado un ejemplo con stored procedure y parametros. Sobran las explicaciones porque como podéis ver es igual que los anteriores.

    SqlParameter[] param = new SqlParameter[1];
    param[0] = new SqlParameter("codigo2", SqlDbType.VarChar);
    param[0].Value = dpcodigo2s.SelectedItem.ToString();

    MSSQL.Connection("");

    MSSQL.ExecuteNonQuery(CommandType.StoredProcedure, "delete_CompanyName", param);

    MSSQL.Close();

    Y esto es todo. Esta clase MSSQL podeis incluirla en vuestras aplicaciones o incluir la dll como un proyecto a parte. Es sencilla de utilizar y os ahorrará mucho codigo2.

    Enlaces relacionadas:

    Ejemplo para utilizar la librería DataManager 
    Librería de acceso a datos DataManager 
    Clase conexión a SQL Server MSSQL.cs (renombrar a .cs) 

    Y esto es todo, feliz programming!!
    Saludos
    Alex.


    Si te ha gustado el artículo compartelo en:        


    Publicidad

    También puede interesarte:

    Limpiar datos de un combobox en winforms.

    Limpiar datos de un combobox en winforms.

    Por Alex, el 23/03/2010

    Crear, copiar y borrar bases de datos SQL Server desde c#.

    Crear, copiar y borrar bases de datos SQL Server desde c#.

    Por Alex, el 07/03/2010

    Escribir en un excel desde c#.

    Escribir en un excel desde c#.

    Por Alex, el 04/03/2010

    Llenar un Repeater o DataList con un DataTable.

    Llenar un Repeater o DataList con un DataTable.

    Por Alex, el 29/12/2008

    El evento SelectedIndexChanged no funciona

    El evento SelectedIndexChanged no funciona

    Por Alex, el 26/12/2008

    Crear un DataSet vacío

    Crear un DataSet vacío

    Por Alex, el 26/12/2008


    Añadir un comentarios:

    Nombre:
    Email: (no se publica el email)




  • SIGUENOS EN

    ARCHIVO

    Publicidad

    .