ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor ASP.NET Conexiones a Bases de Datos Parte No. 1: Creación de la Base de Datos. Base de Datos: db_registro_academico Tabla: tbl_estudiantes, Aplicar la siguiente estructura: Parte 2: Preparación del Sitio de la Aplicación en IIS. Verificar el Registro de Framework 2.0 en el IIS. Crear el Sitio Web en el IIS local con el Visual Studio. Configurar el Sitio para trabajar con ASP.NET 2.0 y que el documento por defecto sea el Default.aspx. Ing. Edwin Rolando Paredes Calderón. Página 1 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Parte 3: Aplicar el tema o maquetación definida con el 960gs. Tomar en cuenta que en el área de trabajo debe dejarse una sola columna, eliminando la columna o div_info definida en la maquetación. Además de importar tanto las imágenes como los archivos de CSS para poder implementar la estructura indicada. Parte 4: Definición de los Objetos en el Archivo .aspx. Objetos de los Botones, para generar el código manejador del evento podemos hacer doble click en el modo de Diseño del documento ASPX. Ing. Edwin Rolando Paredes Calderón. Página 2 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Definición de los Objetos para los Campos de la Tabla: <div> <asp:Panel ID="pnl_campos" runat="server" Enabled="false"> <table cellpadding="2" cellspacing="1" border="0" width="100%"> <tr> <td> ID </td> <td> <asp:TextBox ID="txt_id" runat="server"></asp:TextBox> </td> </tr> <tr> <td> Nombres </td> <td colspan="3"> <asp:TextBox ID="txt_nombres" runat="server" Width="400px"> </asp:TextBox> </td> </tr> <tr> <td> Apellidos </td> <td colspan="3"> <asp:TextBox ID="txt_apellidos" runat="server" Width="400px"> </asp:TextBox> </td> </tr> <tr> <td> Fecha Nac. </td> <td> <asp:TextBox ID="txt_fecha_nac" runat="server"></asp:TextBox> </td> <td> Nota </td> <td> <asp:TextBox ID="txt_nota" runat="server"></asp:TextBox> </td> </tr> </table> </asp:Panel> </div> Ing. Edwin Rolando Paredes Calderón. Página 3 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Definición de la Grilla en el ASPX, podemos simplemente definir el objeto GridView con (<asp:GridView ID="gv_Datos" runat="server") luego aplicar el formato y definir las columnas utilizando las etiquetas inteligentes o bien definir el objeto en el código aspx: <div class="centrado"> <asp:GridView ID="gv_Datos" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" Width="500px" CssClass="centrar_grillas" AutoGenerateColumns="False"> <RowStyle BackColor="#EFF3FB" /> <Columns> <asp:BoundField DataField="id" HeaderText="ID" /> <asp:BoundField DataField="nombre_completo" HeaderText="Nombre Completo"> <ItemStyle HorizontalAlign="Left" /> </asp:BoundField> <asp:BoundField DataField="nota" HeaderText="Nota" /> </Columns> <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> </div> Parte 5: Codificación para la conexión a Datos: Carga del Documento //Evento de la Carga del Documento protected void Page_Load(object sender, EventArgs e) { this.Cargar_Datos(); } Ing. Edwin Rolando Paredes Calderón. Página 4 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Carga de Datos en la Grid /// <summary> /// Función para Cargar los Datos de la Tabla en la Grid /// </summary> protected void Cargar_Datos() { //Cadena de Conexion al Servidor DB string str_cnn = @"server=.;database=db_registro_academico; user id=sa;password=sa;"; //Objeto para hacer las conexiones con la respectiva cadena de conexion SqlConnection cnn = new SqlConnection(str_cnn); //Consulta que vamos a ejecutar en el servidor de la Base de Datos string query = @"SELECT id ,nombres ,apellidos ,fecha_nac ,nota ,nombre_completo = nombres + ' ' + apellidos FROM tbl_estudiantes"; //Objeto para extraer datos de una Base de Datos SqlDataAdapter da = new SqlDataAdapter(query, cnn); //Definimos el Objeto donde vamos a recibir los datos de la Base de Datos DataTable dt = new DataTable(); da.Fill(dt); //LLenamos la Tabla con el resultado de la Consulta //Asignamos los Resultados a la respectiva propiedad del objeto donde vamos a //mostrar los Datos this.gv_Datos.DataSource = dt; //Llena el Objeto con los Datos especificados en la Propiedad DataSource this.gv_Datos.DataBind(); } Ing. Edwin Rolando Paredes Calderón. Página 5 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Definimos una función para activar y desactivar los campos de edición del formulario de acuerdo al parámetro que recibe. //Permite Activar/Desactivar los campos para su edición protected void Habilitar_Edicion(bool opcion) { this.lb_insertar.Visible = !opcion; this.lb_editar.Visible = !opcion; this.lb_eliminar.Visible = !opcion; this.lb_guardar.Visible = opcion; this.lb_cancelar.Visible = opcion; this.pnl_campos.Enabled = opcion; } Evento Click del Botón Insertar: //Definición del Evento Click del botón Insertar protected void lb_insertar_Click(object sender, EventArgs e) { this.Habilitar_Edicion(true); } Nótese que estamos invocando la función Habilitar_Edicion para activar los campos en la inserción del registro. Ing. Edwin Rolando Paredes Calderón. Página 6 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Código para Insertar el Registro en la Tabla: /// <summary> /// Función para Insertar el Registro /// con los Valores Actuales de los Campos /// </summary> protected void Insertar() { //Cadena de Conexion al Servidor DB string str_cnn = @"server=.;database=db_registro_academico; user id=sa;password=sa;"; SqlConnection cnn = new SqlConnection(str_cnn); //Objeto de Conexión string query = ""; query = String.Format(@" insert into dbo.tbl_estudiantes ( nombres, apellidos, fecha_nac, nota ) values ( '{0}', '{1}', '{2}', {3} )" , this.txt_nombres.Text, this.txt_apellidos.Text, this.txt_fecha_nac.Text, this.txt_nota.Text ); //Definimos el Objeto para Ejecutar Instrucciones SQL en la Base de Datos SqlCommand com = new SqlCommand(query, cnn); //Tipo de Comando, Text o Instrucciones SQL Generales com.CommandType = CommandType.Text; cnn.Open(); //Abrimos la Conexión com.ExecuteNonQuery(); //Ejecutamos la Instrucción cnn.Close(); //Cerramos la Conexión } Ing. Edwin Rolando Paredes Calderón. Página 7 de 8 ASP.NET: Trabajando con Bases de Datos Tecnología Cliente/Servidor Guardar los Datos /// <summary> /// Evento Click del Botón Guardar /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lb_guardar_Click(object sender, EventArgs e) { this.Insertar(); //Inserta el Registro en la Base de Datos this.Habilitar_Edicion(false); //Deshabilita la campos this.Cargar_Datos(); //Cargas los Datos Actualizados en la GridView } En Caso de Cancelar la Edición: /// <summary> /// Cancela la Edición, Deshabilitando los Datos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lb_cancelar_Click(object sender, EventArgs e) { this.Habilitar_Edicion(false); //Deshabilita los Campos del Formulario } Limpiar Campos: Nótese que es necesario Limpiar los Campos luego de Insertar o Cancelar un registro en la tabla por lo que es necesario y mejor opción crear la función que realice esa tarea. Edición de Registros: Crear o Codificar las funciones que permitan editar o eliminar registros en la tabla. Ing. Edwin Rolando Paredes Calderón. Página 8 de 8