Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2005, 17:40
erika_garciam
 
Fecha de Ingreso: febrero-2005
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
No actualiza datagrid

Hola:
Tengo un datagrid que aparentemente hacia el update bien,pero nada mas tenia un registro para prueba, a la hora que tengo mas registros, nada mas hace el update en el primer registro en los otros no hace el update enla base de datos, solo lo hace en el grid. Gracias .

El código es este:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Introducir aquí el código de usuario para inicializar la página

If Not Me.IsPostBack Then
inicia_adapter_consulta()
filldataset()
Session("dataset") = ds
binddatagrid()
Else
ds.Clear()
ds = DirectCast(Session("dataset"), DataSet)
End If

End Sub



Sub filldataset()

cn.Open()
datitles.Fill(ds, "consulta")
dapubs.Fill(ds, "enfermedades")
cn.Close()
ds.Relations.Add("consenfe", ds.Tables("enfermedades").Columns("IdEnfermedad"), ds.Tables("consulta").Columns("IdEnfermedad"))

End Sub





Sub binddatagrid()
DataGrid1.DataSource = Nothing
DataGrid1.DataSource = ds.Tables("consulta")
DataGrid1.DataKeyField = "IdPaciente"
DataGrid1.DataBind()
If DataGrid1.EditItemIndex >= 0 Then
Dim dgi As DataGridItem = DataGrid1.Items(DataGrid1.EditItemIndex)
Dim dropdownlist1 As DropDownList = DirectCast(dgi.FindControl("dropdownlist1"), DropDownList)
dropdownlist1.DataSource = ds.Tables("enfermedades")
dropdownlist1.DataTextField = "enfermedad"
dropdownlist1.DataValueField = "IdEnfermedad"
dropdownlist1.DataBind()
Dim dr As DataRow
dr = getdatarow(DataGrid1.DataKeys(DataGrid1.EditItemIn dex.ToString))
End If

End Sub



Function getdatarow(ByVal id As String) As DataRow
Dim drows() As DataRow
drows = ds.Tables("consulta").Select("IdPaciente='" & id & "'")
If drows.Length > 0 Then
Return drows(0)
End If



Private Sub DataGrid1_Editcommand(ByVal source As System.Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid1.EditCommand
DataGrid1.EditItemIndex = e.Item.ItemIndex
binddatagrid()

End Sub

Private Sub DataGrid1_UpdateCommand(ByVal source As System.Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim dgi As DataGridItem = DataGrid1.Items(e.Item.ItemIndex)
Dim dr As DataRow = getdatarow(DataGrid1.DataKeys(e.Item.ItemIndex).To String)
Try
dr("IdPaciente") = DirectCast(dgi.Cells(0).Controls(0), TextBox).Text
dr("Fecha_consulta") = CDate(DirectCast(dgi.Cells(1).Controls(0), TextBox).Text)
Dim dropdownlist1 As DropDownList = DirectCast(dgi.FindControl("dropdownlist1"), DropDownList)
dr("IdEnfermedad") = dropdownlist1.SelectedItem.Value
dr("receto") = DirectCast(dgi.Cells(3).Controls(0), TextBox).Text
DataGrid1.EditItemIndex = -1
Catch miexception As System.Exception
Console.WriteLine(miexception.Message)

End Try


inicia_adapter_consulta()
If ds.HasChanges Then
Label6.Text = "entre a modificart"
Try
cn.Open()
Catch miexception As System.Exception
Console.WriteLine(miexception.Message)
End Try

Try
datitles.Update(ds, "consulta")
datitles.Fill(ds, "consulta")
binddatagrid()
Catch miexception As System.Exception
Console.WriteLine(miexception.Message)

End Try
End If
End Sub