Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/03/2006, 01:21
imanol22
 
Fecha de Ingreso: abril-2005
Mensajes: 55
Antigüedad: 19 años, 8 meses
Puntos: 0
Cita:
Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.EditCommand

DataGrid1.EditItemIndex = e.Item.ItemIndex
cargar_grid()

End Sub



Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.UpdateCommand

SqlConnection1.Open()

Dim codigo As String
Dim nombre As String
Dim asignatura As String
Dim especialidad As String

'Response.Write("IMANOL")
Dim myTextBox As TextBox
' Este es el valor de la clave primaria: Recuperado del DataKey, dado que se trata de un campo de sólo lectura
If e.Item.ItemIndex > 0 Then

Dim codigos As String = DataGrid1.DataKeys.Item(e.Item.ItemIndex).ToString



'Response.Write(e.Item.ItemIndex)
myTextBox = e.Item.FindControl("txt_asig")
asignatura = myTextBox.Text

myTextBox = e.Item.FindControl("txt_espe")
especialidad = myTextBox.Text
'coger las 3 claves a las ke le puesto el alias y hacer lo mismo ke con los demas parametros
'aunque no los displaye luego
myTextBox = e.Item.FindControl("editar_codigo")
codigo = myTextBox.Text
myTextBox = e.Item.FindControl("editar_nombre")
nombre = myTextBox.Text
End If

' Ahora ejecute el procedimiento almacenado
Dim cmd As New SqlClient.SqlCommand("actualizar_materias", SqlConnection1)
cmd.CommandType = CommandType.StoredProcedure

cmd.Parameters.Add(New SqlClient.SqlParameter("@codigo_asignatura", SqlDbType.Char, 5)).Value = asignatura

cmd.Parameters.Add(New SqlClient.SqlParameter("@codigo_materia", SqlDbType.Char, 6)).Value = codigo

cmd.Parameters.Add(New SqlClient.SqlParameter("@codigo_especialidad", SqlDbType.Char, 5)).Value = especialidad

cmd.Parameters.Add(New SqlClient.SqlParameter("@nombre", SqlDbType.VarChar, 50)).Value = nombre

cmd.ExecuteNonQuery()
'Response.Write("IMANOL")

'cmd.Parameters.Add("@codigo_materia", SqlDbType.Char, 5) = codigo

'cmd.Parameters.Add("@nombre", SqlDbType.VarChar, 50) = nombre

End Sub
la tabla tiene esos cuatro campos ,que se llaman igual que los parametros, con las tres claves principales de la tabla he hecho un alias llamado "codigos"
y txt_asig,txt_espe,editar nombre y editar_codigo son los id de los texbox editables pero en el datagrid tengo visibles solo los campos de codigo de materia y nombre de materia,osea los id editar_codigo y editar_nombre.

he conseguido ya que me recupere la linea cuando le doy al evento editar y que me salgan los textbox para introducir los datos para actualizar pero cuando le doy a actualizar se llena la barra no se rompe ni da error pero luego en la base de datos (sqlserver) no actualiza nada,
nose si ustedes igual ven algo ke tengo mal,porke me esta dando dolor de cabeza ya esto llevo dos dias bloqueado.

gracias de antemano