Foros del Web » Programación para mayores de 30 ;) » .NET »

eliminar una desde mi datagrid

Estas en el tema de eliminar una desde mi datagrid en el foro de .NET en Foros del Web. hola a todos espero y alguien me pueda contestar a mi pegunta como puedo eliminar una fila de mi bd desde mi datagrid he probado ...
  #1 (permalink)  
Antiguo 05/04/2005, 12:07
 
Fecha de Ingreso: febrero-2005
Mensajes: 10
Antigüedad: 19 años, 2 meses
Puntos: 0
eliminar una desde mi datagrid

hola a todos espero y alguien me pueda contestar a mi pegunta como puedo eliminar una fila de mi bd desde mi datagrid he probado el siguente codigo y no me funciona me marca un error en el la linea del adaptador
Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As

System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.DeleteCommand
Dim fila_eli As Long
fila_eli = e.Item.DataSetIndex
ds.Tables("nom_tabla").Rows(fila_eli).Delete()
adaptadorautores.Update(ds, "nom_tab")
ds.Tables("nom_tab").AcceptChanges()
DataGrid1.DataBind()
End Sub
  #2 (permalink)  
Antiguo 05/04/2005, 13:42
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Hola Palomitica

Vera me parece que no estas estableciendo la conecion con la base de datos


SqlConnection myConnection;

protected void Page_Load(Object sender, EventArgs e)
{
myConnection = new SqlConnection("server=(local)\\NetSDK;database=pub s;Trusted_Connection=yes");

if (!IsPostBack)
BindGrid();
}

public void MyDataGrid_Delete(Object sender, DataGridCommandEventArgs e)
{
String deleteCmd = "DELETE from Employee where emp_id = @Id";

SqlCommand myCommand = new SqlCommand(deleteCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.NVarChar, 11));
myCommand.Parameters["@Id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];

myCommand.Connection.Open();

try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>Registro eliminado</b><br>" + deleteCmd;
}
catch (SqlException)
{
Message.InnerHtml = "ERROR: no se pudo eliminar el registro";
Message.Style["color"] = "red";
}

myCommand.Connection.Close();

BindGrid();
}

public void BindGrid()
{
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Employee", myConnection);

DataSet ds = new DataSet();
myCommand.Fill(ds, "Employee");

MyDataGrid.DataSource=ds.Tables["Employee"].DefaultView;
MyDataGrid.DataBind();
}
Adapta este ejemplo a tu caso. Este ejemplo en genreal lo que hace es que elimina los registro de tu tabla en la base de datos, refresca el grid, por otro lado debes recordar activar en tu grid el datakeyfile y el ondeletecomand

<ASP:DataGrid id="MyDataGrid" runat="server"
Width="800"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
DataKeyField="emp_id"
OnDeleteCommand="MyDataGrid_Delete"
>


  #3 (permalink)  
Antiguo 05/04/2005, 15:26
 
Fecha de Ingreso: febrero-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
datagrid

mira te pongo mi codigo completo para q lo veas lo ke hace es cuando lo carga lo jala la tabla de mi bd de fox y deacuerdo a mi consulta q genero selecciono el que quiero eliminar y se supone q presiono el boton de eliminar de la propiedad de mi datagrid y me manda ese msg q te comente. Se supone q lo que debo hacer es nadamas elegir el registro a eliminar y borrarlo de mi tabla fisica par ello ocupo este codigo


Imports System.Data.oledb
Public Class WebForm1
Inherits System.Web.UI.Page
'Public ds As New DataSet
Public ds As Data.DataSet = New DataSet
Public adaptadorautores As New OleDbDataAdapter
#Region " Código generado por el Diseñador de Web Forms "

'El Diseñador de Web Forms requiere esta llamada.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
'NOTA: el Diseñador de Web Forms necesita la siguiente declaración del marcador de posición.
'No se debe eliminar o mover.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: el Diseñador de Web Forms requiere esta llamada de método
'No la modifique con el editor de código.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strconexion As String
Dim strcomando As String
Dim cb As OleDbCommandBuilder
Dim claveprimaria(1) As DataColumn
strconexion = "provider=vfpoledb.1;data source=C:\actividades\ra2005\ra_de27.dbf" 'Tabla de quincenas
strcomando = "select * from ra_de27"
adaptadorautores = New OleDbDataAdapter(strcomando, strconexion)
cb = New OleDbCommandBuilder(adaptadorautores)
adaptadorautores.Fill(ds, "ra_de27")
claveprimaria(0) = ds.Tables("ra_de27").Columns("Clave")
ds.Tables("ra_de27").PrimaryKey() = claveprimaria
'Introducir aquí el código de usuario para inicializar la página
DataGrid1.DataSource = ds
If IsPostBack = False Then
DataGrid1.DataBind()
End If

End Sub

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.ItemCommand
If e.CommandName = "seleccionar" Then
DataGrid1.SelectedIndex = e.Item.datasetindex
End If
End Sub

Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.DeleteCommand
Dim fila_eli As Long
fila_eli = e.Item.DataSetIndex
ds.Tables("ra_de27").Rows(fila_eli).Delete()
adaptadorautores.Update(ds, "ra_de27")
ds.Tables("ra_de27").AcceptChanges()
DataGrid1.DataBind()

End Sub

Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex = e.Item.datasetindex
DataGrid1.DataBind()
End Sub

Private Sub DataGrid1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.SelectedIndexChanged
End Sub

Private Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.CancelCommand
DataGrid1.EditItemIndex = -1
DataGrid1.DataBind()
End Sub



End Class
ojala y piedas responder!!!!!!!
  #4 (permalink)  
Antiguo 06/04/2005, 10:54
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Uhmmm tu code es raro, es como que quisieras forzar a que elimine la fila.

Con que manejador de base de datos estas trabajando?

Por si, este ejemplo es en VB con sql sever

Public Sub MyDataGrid_Delete(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim deleteCmd As String = "DELETE from ra_de27 where Id = @Id"

adaptadorautores.Fill(ds, "ra_de27")
Dim myCommand As SqlCommand = New SqlCommand(deleteCmd, myConnection)
myCommand.Parameters.Add(New SqlParameter("@Id", SqlDbType.NVarChar, 11))
myCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CType(e.Item.ItemIndex, Integer))
myCommand.Connection.Open
Try
myCommand.ExecuteNonQuery
Message.InnerHtml = "<b>Registro eliminado</b><br>" + deleteCmd
Catch generatedExceptionVariable0 As SqlException
Message.InnerHtml = "ERROR: no se pudo eliminar el registro"
Message.Style("color") = "red"
End Try
myCommand.Connection.Close
BindGrid ()
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.