Microsoft Unity Data Access Application Block – Ejemplos Básicos
Jorge Ruiz | 09 de marzo de 2009 | Añadir comentario
Más sobre: ASP.NET, General, SQL Server | Tags: Data Access, unity
Microsoft Enterprise Library nos proporciona un bloque de aplicación denominado “acceso a datos” que nos ofrece una abstracción para la utilización de bases de datos.
A continuación, mostraremos unos ejemplos de código fuente sencillo para permitir el acceso a una base de datos SQL Server.
Deberíamos utilizar las siguientes referencias using:
using Microsoft.Practices.EnterpriseLibrary.Data; using System.Data;
Los ejemplos son los siguientes:
/// Ejecución de consulta devolviendo un dataset. try { string consulta = "SELECT * col1, col2 FROM TABLA_PRUEBA"; Database db = DatabaseFactory.CreateDatabase(); System.Data.Common.DbCommand cmd = db.GetSqlStringCommand(consulta); DataSet ds = db.ExecuteDataSet(cmd); // Ejemplo de recorrido. DataTable DT = ds.Tables[0]; int j = DT.Rows.Count; for (int i = 0; i < j; i++) { ListaCualquiera.Add(DT.Rows[i]["DS_Tratamiento"].ToString()); } } catch (Exception ex) { bool reThrow = ExceptionPolicy.HandleException(ex, "BaseDatos"); if (reThrow) throw; } /// Ejecución de consulta obteniendo escalar. try { string sentencia = "select max(col1) from TABLA_PRUEBA"; Database db = DatabaseFactory.CreateDatabase(); System.Data.Common.DbCommand cmd = db.GetSqlStringCommand(sentencia); int cd = (int) db.ExecuteScalar(cmd); } catch (Exception ex) { bool reThrow = ExceptionPolicy.HandleException(ex, "BaseDatos"); if (reThrow) throw; } /// Ejecución de insert, utiliza parámetros. try { String valor = "Valor2"; sentencia = "insert into TABLA_PRUEBA values ('Valor1', @valor)"; cmd = db.GetSqlStringCommand(sentencia); //Asociar tipos y variables al comando db.AddInParameter(cmd, "valor", DbType.String, valor); //Ejecutamos el comando int resultado = db.ExecuteNonQuery(cmd); } catch (Exception ex) { bool reThrow = ExceptionPolicy.HandleException(ex, "BaseDatos"); if (reThrow) throw; } /// Ejecución delete. try { Database db = DatabaseFactory.CreateDatabase(); String sentencia = "delete from TABLA_PRUEBA where DCol1 = 'valor5'"; System.Data.Common.DbCommand cmd = db.GetSqlStringCommand(sentencia); int resultado = db.ExecuteNonQuery(cmd); } catch (Exception ex) { bool reThrow = ExceptionPolicy.HandleException(ex, "BaseDatos"); if (reThrow) throw; }
Para que estos ejemplos funcionen correctamente se debe configurar en el fichero de configuración de la aplicación la cadena de conexión y establecerla como “por defecto”.
Además, los ejemplos utilizan el bloque de aplicación de excepciones de Enterprise Library.
Más sobre: ASP.NET, General, SQL Server | Tags: Data Access, unity