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