Conocimientos previos:
- Conexión a Base de Datos SQL Server desde ASP.NET C# con Web.config
- Como crear Procedimiento Almacenado que elimine datos en SQL SERVER
Secciones importantes de código
Default.aspx
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CRUDTEST._Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<div class="jumbotron">
<asp:Panel runat="server" ID="pnlDatoaAlumno">
<asp:GridView ID="gvdAlumnos" runat="server" AutoGenerateColumns="false" DataKeyNames="Clave Alumno" OnRowDeleting="gvdAlumnos_RowDeleting">
<Columns>
<asp:BoundField DataField="Clave Alumno" HeaderText="Clave Alumno" />
<asp:BoundField DataField="Nombre" HeaderText="Nombre" />
<asp:BoundField DataField="Apellido Paterno" HeaderText="Apellido Paterno" />
<asp:BoundField DataField="Apellido Materno" HeaderText="Apellido Materno" />
<asp:BoundField DataField="Correo Electronico" HeaderText="Correo Electronico" />
<asp:CommandField ShowDeleteButton="true" EditText="Eliminar"/>
</Columns>
</asp:GridView>
<asp:Button ID="btnNuevo" Text="Nuevo Alumno" runat="server" OnClick="btnNuevo_Click" />
</asp:Panel>
<asp:Panel ID="pnlAltaAlumno" runat="server" Visible="false">
<div>
<asp:Label ID="lblNombre" Text="Nombre" runat="server"></asp:Label>
<asp:TextBox ID="txtNombre" runat="server" />
</div>
<div>
<asp:Label ID="lblApPaterno" Text="Apellido Paterno " runat="server"></asp:Label>
<asp:TextBox ID="txtApPaterno" runat="server" />
</div>
<div>
<asp:Label ID="lblApMaterno" Text="Apellido Materno" runat="server" />
<asp:TextBox ID="txtApMaterno" runat="server" />
</div>
<div>
<asp:Label ID="lblEmail" Text="Email" runat="server" />
<asp:TextBox ID="txtEmail" runat="server" />
</div>
<br />
<asp:Button ID="btnGuardar" runat="server" Text="Guardar Alumno" OnClick="btnGuardar_Click" />
</asp:Panel>
</div>
</asp:Content>
Default.cs
Librerias importantes:
using System.Data.SqlClient;
using System.Configuration;
Métodos importantes:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaDatosAlumno();
}
}
public void CargaDatosAlumno()
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connDB"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SPSalumnos";
cmd.Connection = conn;
conn.Open();
gvdAlumnos.DataSource = cmd.ExecuteReader();
gvdAlumnos.DataBind();
}
}
public void GuardaAlumno()
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connDB"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SPIalumnos";
cmd.Parameters.Add("@nombre", SqlDbType.VarChar).Value = txtNombre.Text.Trim();
cmd.Parameters.Add("@apPaterno", SqlDbType.VarChar).Value = txtApPaterno.Text.Trim();
cmd.Parameters.Add("@apMaterno", SqlDbType.VarChar).Value = txtApMaterno.Text.Trim();
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value = txtEmail.Text.Trim();
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
}
}
protected void btnNuevo_Click(object sender, EventArgs e)
{
pnlDatoaAlumno.Visible = false;
pnlAltaAlumno.Visible = true;
}
protected void btnGuardar_Click(object sender, EventArgs e)
{
pnlAltaAlumno.Visible = false;
pnlDatoaAlumno.Visible = true;
GuardaAlumno();
CargaDatosAlumno();
}
protected void gvdAlumnos_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridViewRow row = (GridViewRow)gvdAlumnos.Rows[e.RowIndex];
eliminarAlumno(gvdAlumnos.DataKeys[e.RowIndex].Value.ToString());
CargaDatosAlumno();
}
public void eliminarAlumno(string idAlumno)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connDB"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SPDalumnos";
cmd.Parameters.Add("@idAlumno", SqlDbType.BigInt).Value = Int64.Parse(idAlumno);
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
}
No hay comentarios:
Publicar un comentario