Estoy programando en Basic.net y hay un proceso que me tiene algo estresada.
Tengo dos listviews, en uno tengo los programas que se pueden instalar en un ordenador y en el otro los que se han instalado. Hasta hay todo bien, porque sé como pasar datos de un listview a otro y me funciona correctamente, el caso está cuando quiero actualizarlo a la BBDD Oracle.
Envío la rutina que tengo.
Muchas gracias
Código:
‘Este me pasa del que tiene todos los programas al otro Private Sub Anadir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Anadir34.Click Try Dim i As Integer Dim datos(3) As String For i = 0 To 3 datos(i) = LVProgramas.SelectedItems.Item(0).SubItems(i).Text.ToString Next 'obtengo así el IDPrograma para usarle en la carga de los programas LabelIDPrograma.Text = datos(0) ' 'Carga el programa en la BBDD 'Todavia no lo he intentado, aún estoy en Quitar!! (más abajo) Dim lvItem As ListViewItem lvItem = LVProgInstal.Items.Add(datos(0)) For i = 1 To 3 lvItem.SubItems.Add(datos(i)) Next ' 'elimina la fila seleccionada del ListView LVProgramas.Items.Remove(LVProgramas.SelectedItems(0)) Catch ex As Exception End Try End Sub
Código:
‘Este hace la operación inversa Private Sub Quitar34_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitar34.Click If LVProgInstal.SelectedItems.Count = 0 Then MsgBox("No ha seleccionado ninguna fila") Else QuitarPrograma(LVProgInstal) 'elimina la fila seleccionada del ListView LVProgInstal.Items.Remove(LVProgInstal.SelectedItems(0)) 'habrá que volver a poner esta fila en el listview de arriba End If End Sub
Código:
De momento esta función, que es con la que estoy me falla en ejecución diciendo:Private Sub QuitarPrograma(ByVal List As ListView, Optional ByVal equipo As Integer = Nothing) 'obtengo así el IDPrograma para usarle en la carga de los programas LabelIDPrograma.Text = List.SelectedItems.Item(0).SubItems(0).Text.ToString() 'primero hay que eliminarla de la BBDD Dim consulta As String = "SELECT * FROM usrSat.RelEqProg ORDER BY IDEquipo" ConectarConBBDD(consulta) Dim query As String = "DELETE * FROM usrSat.RelEqProg WHERE IDEquipo = " LabelIDEquipo.Text & " and IDPrograma = " LabelIDPrograma.Text Dim comand As New OracleCommand(query, oCnn) Dim parameter As OracleParameter = comand.Parameters.Add("IDEquipo", OracleType.Number, 5, "IDEquipo") Dim parameter2 As OracleParameter = comand.Parameters.Add("IDPrograma", OracleType.Number, 5, "IDPrograma") parameter.SourceVersion = DataRowVersion.Original parameter2.SourceVersion = DataRowVersion.Original oDa.DeleteCommand = comand oDa.DeleteCommand.ExecuteNonQuery() oDa.AcceptChangesDuringUpdate = True oDa.Update(oDt) oDt.AcceptChanges() End Sub
El còdigo de usuario no controlò invalidOperationExeption
operación no valida; se ha terminado la conexión
Sugerencias para solucionar problemas
He estado mirando en el foro y encontré un Post de un chico que le pasaba algo parecido os pongo el enlace por si quereis verlo (http://www.forosdelweb.com/f78/asp-n...oracle-554035/ )
El caso es que no he conseguido hacerlo funcionar!!