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

Problemas con checkedlistbox

Estas en el tema de Problemas con checkedlistbox en el foro de .NET en Foros del Web. Hola, solicito de nuevo ayuda con un checkedlistobx. El problema es que cargo uno con los datos de una tabla fija, kiero decir q en ...
  #1 (permalink)  
Antiguo 15/11/2005, 08:56
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Problemas con checkedlistbox

Hola, solicito de nuevo ayuda con un checkedlistobx.
El problema es que cargo uno con los datos de una tabla fija, kiero decir q en esta tabla ni inserto registros ni los borro. Esta tabla está relacionada con otra por medio de una relación N:M con lo que se crea otra tabla intermedia que tiene como clave primaria la clave primaria d las otras dos. Las tablas serían sesion, clave idsesion; terapias, clave idterapia y sesionterapia, clave idsesion e id terapia. En el checkedlistbox muestro el campo nombre de la tabla terapias. Entonces puede q una sesión esté compuesta de varias terapias que es lo q m aparece en la tabla sesionterapia. Si en el checkedlistbox marco una determinada terapia significa q utilizo esa terapia en la sesion.
Cómo puedo guardar esos valores en la tabla sesionterapia? y si desmarco la terapia como puedo eliminarlo?
Había pensado hacerlo en el evento itemcheck q detecta un cambio de check.

Private Sub checkedListBox1_ItemCheck(ByVal sender As Object, _
ByVal e As ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
If e.NewValue = CheckState.Unchecked Then
Dim sql = "delete from sesionterapia where idsesion=" & Val(txtIdSesion.Text)
sql = sql & " and idterapia=" & Val(txtIdSesion.Text)
If MsgBox("¿Desea eliminar esta terapia?", MsgBoxStyle.Critical + MsgBoxStyle.YesNo, "Eliminación de terapia") = _
MsgBoxResult.Yes Then
procesasql(sql)
End If
Else
Dim Sql = "insert into sesionterapia(idsesion,idterapia,duracion,parametr os)"
Sql = Sql & "Values('" & txtIdSesion.Text & "','" & txtIdTerapia.Text & "','" & txtDuracion.Text & "','"
Sql = Sql & txtParametros.Text & "')"
procesasql(Sql)
End If
End Sub

pero el problema es que cuando cargo el formulario y va a la base de datos a mostrar (y poner) el check d las terapias correspondientes a la sesión q estamos ya detecta el cambio de unchecked (inicialmente desactivo todos los check) a checked y m intenta insertar con lo que me da error "infracción de la restricción primary key pk_sesioneterapia. No se puede insertar una clave duplicada en el objeto 'sesionterapia'" pq ese registro ya está n la base de datos.
No sé como hacer todo esto, a ver si alguien m puede exar una mano, gracias.
  #2 (permalink)  
Antiguo 16/11/2005, 01:58
 
Fecha de Ingreso: abril-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
Parece q ya m funciona, tenía un error tonto por ahí de código.

Saludos
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 15:03.