ASP.NET - boton delete con gridview en asp.net y sql server

 
Vista:
sin imagen de perfil

boton delete con gridview en asp.net y sql server

Publicado por felipe (8 intervenciones) el 05/08/2016 04:33:04
Estimados tengo una duda con hacer un boton para eliminar una fila o filas de un gridview con datos de sql server y asp.net.

he buscado en internet y hay uan forma de agregar un boton a la misma gridview pero lo que quiero es hacerlo fuera del gridview y con checkbox para poder eliminar 1 o mas filas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
ASPX:
              <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID_USUARIO" HeaderStyle-CssClass="active" DataSourceID="SqlDataSource3" EmptyDataText="There are no data records to display." CssClass="table table-bordered table-condensed table-hover small ">
                  <Columns>
                      <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
                      <asp:BoundField DataField="ID_USUARIO" HeaderText="ID_USUARIO" ReadOnly="True" SortExpression="ID_USUARIO" />
                      <asp:BoundField DataField="ID_PERFIL" HeaderText="ID_PERFIL" SortExpression="ID_PERFIL" />
                      <asp:BoundField DataField="NOMBRE_USUARIO" HeaderText="NOMBRE_USUARIO" SortExpression="NOMBRE_USUARIO" />
                      <asp:BoundField DataField="APELLIDO_USUARIO" HeaderText="APELLIDO_USUARIO" SortExpression="APELLIDO_USUARIO" />
                      <asp:BoundField DataField="RUT_USUARIO" HeaderText="RUT_USUARIO" SortExpression="RUT_USUARIO" />
                      <asp:BoundField DataField="CONTRASENA" HeaderText="CONTRASENA" SortExpression="CONTRASENA" />
                  </Columns>
 
<HeaderStyle CssClass="active"></HeaderStyle>
              </asp:GridView>


____________
SQL SERVER
1
2
3
4
5
6
7
create procedure[dbo].[stp_DeleteUsuario]
 (@id int)
 as begin
select @id=ID_USUARIO from USUARIO
 
delete  from USUARIO where ID_USUARIO= @id;
end
______


[code] protected void btnEliminarUsuario_Click(object sender, EventArgs e)
{



}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Oscar

boton delete con gridview en asp.net y sql server

Publicado por Oscar (5 intervenciones) el 05/08/2016 05:30:11
Hola Felipe para realizar eso tendrías que agregar un TemplateField dentro de tu gridview, además de un botón para eliminar las filas seleccionadas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<asp:button ID="eliminar" runat="server"  OnClick="eliminar" />
 
<asp:GridView runat="server"  ID="GridView1">
 
<Columns>
<asp:TemplateField>
           <HeaderTemplate>
                                  Seleccionar
           </HeaderTemplate>
            <ItemTemplate>
                                      <asp:CheckBox runat="server" ID="chk_selec" />
             </ItemTemplate>
</asp:TemplateField>
 
  //Tus columnas
 
 
</Columns>
</asp:GridView>



Dentro del evento del botón eliminar estaría lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
//Recorres todas las filas del GridView1
for (int i = 0; i < GridView1.Rows.Count; i++)
{
	//Obtienes cada checkbox de las filas
	System.Web.UI.WebControls.CheckBox c =  (System.Web.UI.WebControls.CheckBox)grv_disponibles.Rows[i].Cells[0].FindControl("chk_selec");
 
	if (c.Checked)//Validas que el checkbox este seleccionado
	{
		//obtienes el valor de la segunda columna, que corresponde con el id_usuario
		id_usuario = GridView1.Rows[i].Cells[1].Text;
		//llamarías a tu procedimiento pasando el id obtenido.
	}
}

Espero te sirva Saludos.

http://lineasdeunprogramador.blogspot.mx/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton delete con gridview en asp.net y sql server

Publicado por felipe (8 intervenciones) el 08/08/2016 20:48:08
Gracias por responder amigo, tengo una duda con el codigo en el botón
en la linea
1
System.Web.UI.WebControls.CheckBox c =  (System.Web.UI.WebControls.CheckBox)grv_disponibles.Rows[i].Cells[0].FindControl("chk_selec");
no me queda claro que es grv_disponibles ( tengo que declarar eso como que cosa?)

DE ante mano gracias !


tengo esto:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
protected void btnEliminarUsuario_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                SqlCommand cmd = new SqlCommand("stp_DeleteUsuario", cn);
                cmd.Parameters.Add("@id_usuario", SqlDbType.Int);
 
                System.Web.UI.WebControls.CheckBox c = (System.Web.UI.WebControls.CheckBox)grv_disponibles.Rows[i].Cells[0].FindControl("chk_selec");
 
                if (c.Checked)//Validas que el checkbox este seleccionado
                {
 
                    cmd.Parameters.["@id_usuario"].Value = GridView1.Rows[i].Cells[1].Text;
 
                }
            }
 
 
        }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oscar

boton delete con gridview en asp.net y sql server

Publicado por Oscar (5 intervenciones) el 08/08/2016 23:05:57
Hola Felipe, fue error de dedo, en vez de grv_disponibles, es tu gridview, es decir GridView1.

System.Web.UI.WebControls.CheckBox c = (System.Web.UI.WebControls.CheckBox)GridView1.Rows[i].Cells[0].FindControl("chk_selec");

y esa linea lo que hace es un cast entre los checkbox de la gridview con el control CheckBox , esto es para poder llamar las
propiedades y finciones del control checkbox de cada fila, en este caso verificamos que los checkbox esten marcados.

Con eso deberìa funcionar, si hay algun problema lo màs seguro es que sea del store procedure, si tienes alguna duda sobre
como usar store procedures en Ado.net, solo avisame y te escribo un ejemplo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

boton delete con gridview en asp.net y sql server

Publicado por felipe (8 intervenciones) el 09/08/2016 15:48:00
Gracias totales amigo! me funciono haciendo esto:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
protected void btnEliminarUsuario_Click(object sender, EventArgs e)
        {
            SqlCommand cmd = new SqlCommand("stp_DeleteUsuario", cn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@id_usuario", SqlDbType.VarChar);
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
 
            //    //Obtienes cada checkbox de las filas
             System.Web.UI.WebControls.CheckBox c = (System.Web.UI.WebControls.CheckBox)GridView1.Rows[i].Cells[0].FindControl("chk_selec");
 
                if (c.Checked)//Validas que el checkbox este seleccionado
                {
                    //        //obtienes el valor de la segunda columna, que corresponde con el id_usuario
                    cmd.Parameters["@id_usuario"].Value = GridView1.Rows[i].Cells[1].Text;
                    //        //llamarías a tu procedimiento pasando el id obtenido.
                    cn.Open();
                    //ejecutamos la instruccion con ExcecuteNonQuerry indicando que no retorna registros.
                    //DropDownListPerfil
                    cmd.ExecuteNonQuery();
 
                    //cerramos conexion
                    cn.Close();
                }
 
 
 
            }
 
 
            Response.Redirect("Usuarios.aspx");
        }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

boton delete con gridview en asp.net y sql server

Publicado por Javier Lopez Vargas (10 intervenciones) el 06/08/2016 16:02:16
Hola aqui te dejo un ejemplo en asp espero te sirva
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<asp:GridView ID="dgvDatPersona" runat="server" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="LinqDataSource" style="margin-left: 182px" Width="640px" AutoGenerateColumns="False" OnRowCommand="dgvDatPersona_RowCommand">
	<Columns>
		<asp:BoundField DataField="strClaveUnica" HeaderText="Clave Unica" ReadOnly="True" SortExpression="strClaveUnica" />
		<asp:BoundField DataField="strNombre" HeaderText="Nombre" ReadOnly="True" SortExpression="strNombre" />
		<asp:BoundField DataField="strAPaterno" HeaderText="Apellido Paterno" ReadOnly="True" SortExpression="strAPaterno" />
		<asp:BoundField DataField="strAMaterno" HeaderText="Apellido Materno" ReadOnly="True" SortExpression="strAMaterno" />
		<asp:BoundField DataField="idCatSexo" HeaderText="idCatSexo" ReadOnly="True" SortExpression="idCatSexo" Visible="False" />
		<asp:BoundField DataField="CatSexoEdithGarciaGil" HeaderText="Sexo" SortExpression="CatSexoEdithGarciaGil" />
		<asp:BoundField DataField="strTelefono" HeaderText="Telefono" ReadOnly="True" SortExpression="strTelefono" />
		<asp:BoundField DataField="id" HeaderText="id" SortExpression="id" Visible="False" />
		<asp:TemplateField HeaderText="Editar">
				<ItemTemplate>
					<asp:ImageButton runat="server" ID="imgEditar" CommandName="Editar" CommandArgument='<%#Bind("id") %>' ImageUrl="~/Imagenes/editrecord_16x1.png" />
				</ItemTemplate>
				<HeaderStyle HorizontalAlign="Center" />
				<ItemStyle HorizontalAlign="Center" Width="50px" />
			</asp:TemplateField>
			<asp:TemplateField HeaderText="Eliminar">
				<ItemTemplate>
					<asp:ImageButton runat="server" ID="imgEliminar" CommandName="Eliminar" CommandArgument='<%#Bind("id") %>' ImageUrl="~/Imagenes/delrecor_16.png" OnClientClick="javascript:return confirm('¿Está seguro de querer eliminar el registro seleccionado?', 'Mensaje de sistema')" />
				</ItemTemplate>
				<HeaderStyle HorizontalAlign="Center" />
				<ItemStyle HorizontalAlign="Center" Width="50px" />
			</asp:TemplateField>
	</Columns>
	<FooterStyle BackColor="White" ForeColor="#000066" />
	<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
	<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
	<RowStyle ForeColor="#000066" />
	<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
	<SortedAscendingCellStyle BackColor="#F1F1F1" />
	<SortedAscendingHeaderStyle BackColor="#007DBB" />
	<SortedDescendingCellStyle BackColor="#CAC9C9" />
	<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView>

en sql
1
2
3
select @id=ID_USUARIO from USUARIO
 
delete  from USUARIO where ID_USUARIO= @id;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar