Capa de Acceso a Datos en ASP.NET
Hola, en este tutorial les mostraré como desarrollar una página en ASP.NET con conexión a una base de datos de manera dinámica y utilizando una DAL (Data Access Layer) “Capa de Acceso a Datos”, Espero les pueda servir de mucha ayuda.
1.- Creamos un sitio web ASP.NET
2.- Creamos la base de datos.
3.- Creamos una tabla, en este caso estoy creando una tabla llamada tbClientes
4.-Creamos el siguiente procedimiento Almacenado para poder agregar clientes.
CREATE PROCEDURE dbo.InsertarCliente ( @ID_Cliente int, @Nombre_Cliente varchar(50), @ApellidoPaterno varchar(50), @ApellidoMaterno varchar(50), @Telefono int, @Direccion varchar(50), @Descripcion varchar(MAX) ) AS INSERT INTO tbClientes VALUES(@ID_Cliente,@Nombre_Cliente,@ApellidoPaterno,@ApellidoMaterno,@Telefono,@Direccion,@Descripcion)
5.- Agrego una clase llamada AccesoaDatos.cs
6.- Me voy al Web.config (Archivo de Configuración de la Aplicación), busquemos los tags <appSettings/> y <connectionStrings/> y modifiquemos con el siguiente código.
<appSettings> <add key="miProveedor" value="System.Data.SqlClient"/> </appSettings> <connectionStrings> <add name="miCadenaConexion" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Clientes.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/> </connectionStrings>
Este procedimiento nos ayuda a hacer de una manera dinámica la parte de la conexión y el escoger nuestro proveedor de acceso a datos desde código.
7.- Nos vamos a la clase y agregamos el namespace.
using System.Configuration;
8.- Agregamos el siguiente código, para hacer referencia a la cadena de conexión y al proveedor.
public static string miCadenaConexion { get { return ConfigurationManager.ConnectionStrings["miCadenaConexion"].ConnectionString; } } public static string miProveedor { get { return ConfigurationManager.AppSettings["miProveedor"]; } }
9.- Agrega el siguiente namespace
using System.Data.Common;
public static DbProviderFactory dbProveedor { get { return DbProviderFactories.GetFactory(miProveedor); } }
10.- Agregamos este método, que nos permitará hacer la conexión, y tomar como parámetros el procedimiento almacenado y todos sus parámetros.
private static void executeNonQuery(string ProcedimientoAlmacenado, List<DbParameter> parametros) { using (DbConnection conexion = dbProveedor.CreateConnection()) { conexion.ConnectionString = miCadenaConexion; using (DbCommand comando = dbProveedor.CreateCommand()) { comando.Connection = conexion; comando.CommandText = ProcedimientoAlmacenado; comando.CommandType = CommandType.StoredProcedure; foreach (DbParameter param in parametros) comando.Parameters.Add(param); conexion.Open(); comando.ExecuteNonQuery(); } } }
11.- Agregamos el método de InsertarCliente.
public static void insertarCliente(int ID_Cliente, string Nombre_Cliente, string ApellidoPaterno, string ApellidoMaterno, int Telefono, string Direccion, string Descripcion) { List<DbParameter> parametros = new List<DbParameter>(); DbParameter param1 = dbProveedor.CreateParameter(); param1.DbType = DbType.Int32; param1.Value = ID_Cliente; param1.ParameterName = "ID_Cliente"; parametros.Add(param1); DbParameter param2 = dbProveedor.CreateParameter(); param2.DbType = DbType.String; param2.Value = Nombre_Cliente; param2.ParameterName = "Nombre_Cliente"; parametros.Add(param2); DbParameter param3 = dbProveedor.CreateParameter(); param3.DbType = DbType.String; param3.Value = ApellidoPaterno; param3.ParameterName = "ApellidoPaterno"; parametros.Add(param3); DbParameter param4 = dbProveedor.CreateParameter(); param4.DbType = DbType.String; param4.Value = ApellidoMaterno; param4.ParameterName = "ApellidoMaterno"; parametros.Add(param4); DbParameter param5 = dbProveedor.CreateParameter(); param5.DbType = DbType.Int32; param5.Value = Telefono; param5.ParameterName = "Telefono"; parametros.Add(param5); DbParameter param6 = dbProveedor.CreateParameter(); param6.DbType = DbType.String; param6.Value = Direccion; param6.ParameterName = "Direccion"; parametros.Add(param6); DbParameter param7 = dbProveedor.CreateParameter(); param7.DbType = DbType.String; param7.Value = Descripcion; param7.ParameterName = "Descripcion"; parametros.Add(param7); executeNonQuery("InsertarCliente", parametros); } private static void executeNonQuery(string StoredProcedure, List<DbParameter> parametros) { using (DbConnection con = dbProveedor.CreateConnection()) { con.ConnectionString = miCadenaConexion; using (DbCommand cmd = dbProveedor.CreateCommand()) { cmd.Connection = con; cmd.CommandText = StoredProcedure; cmd.CommandType = CommandType.StoredProcedure; foreach (DbParameter param in parametros) cmd.Parameters.Add(param); con.Open(); cmd.ExecuteNonQuery(); } } }
12.- Nos vamos al formulario y agregamos algunos controles cuadros de texto y un botón de agregar.
Y programemos el botón agregar:
protected void Button1_Click(object sender, EventArgs e) { AccesoaDatos.insertarCliente(int.Parse(txtID.Text), txtNombre.Text, txtApellidoPaterno.Text, txtApellidoPaterno.Text, int.Parse(txtTelefono.Text), txtDireccion.Text, txtDescripcion.Text); }
Simplemente mandamos a llamar a nuestro método y pasamos como parámetros los cuadros de texto. Ejecutalo F5
13.- Checamos si realmente lo guarda.
Del mismo modo haganlo para actualizar, borrar.
Visto en Tecnologias Microsoft
Tags: .Net







