He buscado hasta perder la esperanza de el porque no puedo actualizar
mi DataGrid de ASP cuando está en modo de edición.
Por ejemplo:
1.- Hago click en el boton "Editar" del registro que quiero actualizar.
2.- Los campos se convierten en TexBox para poder modificarlos.
3.- Al Modificar un campo X y dar clik al Botón "Actualizar", me
regresa el valor anterior y no se actualiza en mi base de datos.
Este es mi código del Boton Actualizar:
Sub UpdateCommand(ByVal Sender As Object, ByVal E As
DataGridCommandEventArgs)
'Recuperamos los valores de los TextBox
Dim TextIdTienda As TextBox = e.Item.Cells(1).Controls(0)
Dim TextTienda As TextBox = e.Item.Cells(2).Controls(0)
Dim VarIdTienda As String = TextIdTienda.Text
Dim VarTienda As String = TextTienda.Text
''''Para ver que valores voy a actualizar primero los mando a una
etiqueta.
''''pero es aquí donde se pierden los valores modificados y obtengo
los valores anteriores
''''Por ejemplo si mi Texbox tiene el valor de "Juan" y lo cambio a
"Pedro" al dar clik a el botón
''''Actualizar obtengo el valor de "Juan" y "Pedro" se pierde y es lo
que se manda a la consulta
''''de actualización, nuevamente el valor de "Juan". No se genera
ningun error.
Message.Text = VarIdTienda & ", " & VarTienda
Dim SQL As String = "UPDATE DIRECTORIO SET NOMBRE='" & VarTienda & "'
WHERE ID_TIENDA='" & VarIdTienda & "'"
Dim conn as New SqlConnection(ConexionSQL)
Dim comm as New SqlCommand(SQL, conn)
'ejecuta los comandos
Try 'controlo el error con el Try .. Catch
conn.Open()
comm.ExecuteNonQuery()
Catch ex as Exception
Message.Text = ex.ToString()
Finally
conn.Close
End Try
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub
Este es el código de mi DataGrid:
<form runat="server"><P>
<asp:label id="Message" runat="server" width="624px"
forecolor="#000099" enableviewstate="false"></asp:label> </P>
<asp:datagrid id="MyDataGrid" runat="server" Font-Names="Arial"
ForeColor="Black" BorderWidth="1px" GridLines="None" cellpadding="2"
Headerstyle-BackColor="#8080C0" Headerstyle-Font-Name="Arial"
Headerstyle-Font-Bold="True" Headerstyle-Font-Size="10"
BackColor="LightGoldenrodYellow" Font-Name="Arial" Font-Size="8pt"
AlternatingItemStyle-BackColor="#DFDFDF"
AlternatingItemStyle-Font-Name="Arial"
AlternatingItemStyle-Font-Size="8" BorderColor="Tan"
AutogenerateColumns="False" OnEditCommand="EditCommand"
OnCancelCommand="CancelCommand" OnUpdateCommand="UpdateCommand"
DataKeyField="ID_TIENDA">
<FooterStyle BackColor="Tan"></FooterStyle>
<SelectedItemStyle ForeColor="GhostWhite"
BackColor="DarkSlateBlue"></SelectedItemStyle>
<AlternatingItemStyle Font-Size="8pt" Font-Names="Arial" BackColor"PaleGoldenrod"> </AlternatingItemStyle>
<HeaderStyle Font-Size="10pt" Font-Names="Arial" Font-Bold="True"
BackColor = "Tan"> </HeaderStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" HeaderText="ACTUALIZAR"
UpdateText="Actualizar" CancelText="Cancelar"
EditText="Editar"></asp:EditCommandColumn>
<asp:BoundColumn DataField="ID_TIENDA"
HeadertEXT="CLAVE"></asp:BoundColumn>
<asp:BoundColumn DataField="NOMBRE"
HeaderText="TIENDA"></asp:BoundColumn>
<asp:BoundColumn DataField="ZONA"
HeaderText="SUPERVISOR"></asp:BoundColumn>
<asp:BoundColumn DataField="RUTAS"
HeaderText="PROMOTOR"></asp:BoundColumn>
<asp:BoundColumn DataField="SEMANA"
HeaderText="SEMANA"></asp:BoundColumn>
<asp:BoundColumn DataField="DIA" HeaderText="DIA"></asp:BoundColumn>
<asp:BoundColumn DataField="CONTACTO"
HeaderText="CONTACTO"></asp:BoundColumn>
<asp:BoundColumn DataField="APELLIDO_PAT_CON" HeaderText="APELLIDOS">
</asp:BoundColumn>
<asp:BoundColumn DataField="CALLE"
HeaderText="CALLE"></asp:BoundColumn>
<asp:BoundColumn DataField="NUMERO"
HeaderText="NUMERO"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="DarkSlateBlue"
BackColor="PaleGoldenrod"> </PagerStyle>
</asp:datagrid><br>
</form>
Necesito desesperadamente de su ayuda.
Leer las respuestas