Muy buenas a todos mis compañeros del foro:
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:
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
De momento esta función, que es con la que estoy me falla en ejecución diciendo:
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!!