locked
Update con INNER JOIN en vb.net y mysql RRS feed

  • Pregunta

  • Hola a todos en estos momentos estoy desarrollando un sistema en el cual se me esta presentando problemas a la hora de actualizar un registro en la base de datos a traves del formulario del vb ya que me tira el error : ¡Fatal error encountered durin command execution! y no se el porque ya que hago las pruebas directamente en el sql y si me actualiza.

    A continuacion el codigo:

    Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizar.Click
            If btnActualizar.Visible = True Then
                btnActualizar.Visible = False
                ' Habilitar los textbox
                fHabilitar_textbox(False)
                ' Mostrar los botones
                'fBotones(True)
                ' Mostrar el boton Cancelar
                btnCancelar.Visible = False
    
                Dim cn As New MySqlConnection(frmConexion.ConexionMySQL)
                cn.Open()
    
                Try
                    Dim sqlA As String = "UPDATE detalle " & _
                                        "INNER JOIN ordenantes ON detalle.id_ordenante = ordenantes.id_ordenante" & _
                                        "INNER JOIN productos ON detalle.id_producto = productos.id_producto" & _
                                        "INNER JOIN proveedores ON detalle.id_proveedor = proveedores.id_proveedor" & _
                                        "INNER JOIN tipo_inst ON detalle.id_tipo = tipo_inst.id_tipo" & _
                                        "SET detalle.nro = @no, detalle.fecha = @fechao, detalle.boaimp = @boaimp," & _
                                        "detalle.boaexp = @boaexp, detalle.nroinst = @noinstrumento, detalle.aad = @aad," & _
                                        "detalle.unidadcuenta = @unidadcuenta, detalle.montosucre = @montoucre," & _
                                        "detalle.montousd = @montousd, detalle.paisimp = @paisimp," & _
                                        "detalle.paisexp = @paisexp, ordenantes.nombre_ordenante = @ordenante," & _
                                        "productos.cod_arancelario = @codarancelario, proveedores.nombre_proveedor = @beneficiario," & _
                                        "proveedores.nrocuenta = @nocuentacliente, tipo_inst.nombre_tipoinst = @tipoinstrumento" & _
                                        "WHERE detalle.nroref = @noref "
    
                    'Se toman los 2 valores despues de la cuarta letra del boaimport
                    Dim iCadena As String = txtBOAI.Text
                    Dim isSubCadena As String = iCadena.Substring(4, 2)
                    'Se toman los 2 valores despues de la cuarta letra del boaexport
                    Dim eCadena As String = txtBOAE.Text
                    Dim esSubCadena As String = eCadena.Substring(4, 2)
                    'Se declara como decimal este campo
                    Dim valor As Decimal = txtUnidadcuenta.Text
                    Dim valor2 As Decimal = txtMonto.Text
                    Dim valor3 As Decimal = txtMontousd.Text
    
                    Dim cmd = New MySqlCommand(sqlA, cn)
                    cmd.Parameters.AddWithValue("@noref", txtReferencia.Text)
                    cmd.Parameters.AddWithValue("@no", txtNo.Text)
                    cmd.Parameters.AddWithValue("@fechao", dtpicker1.Value.ToString("yyyy-MM-dd"))
                    cmd.Parameters.AddWithValue("@codarancelario", txtCodArancelario.Text)
                    cmd.Parameters.AddWithValue("@unidadcuenta", valor)
                    cmd.Parameters.AddWithValue("@monto", valor2)
                    cmd.Parameters.AddWithValue("@montousd", valor3)
                    cmd.Parameters.AddWithValue("@boaimp", txtBOAI.Text)
                    cmd.Parameters.AddWithValue("@boaexp", txtBOAE.Text)
                    cmd.Parameters.AddWithValue("@paisimp", isSubCadena)
                    cmd.Parameters.AddWithValue("@paisexp", esSubCadena)
                    cmd.Parameters.AddWithValue("@beneficiario", txtBeneficiario.Text)
                    cmd.Parameters.AddWithValue("@nocuentacliente", txtNocuenta.Text)
                    cmd.Parameters.AddWithValue("@ordenante", txtOrdenante.Text)
                    cmd.Parameters.AddWithValue("@noinstrumento", txtNoinst.Text)
                    cmd.Parameters.AddWithValue("@tipoinstrumento", txtTipoinst.Text)
                    cmd.Parameters.AddWithValue("@aad", txtAAD.Text)
                    'Ejecutar instruccion sql Update
                    cmd.ExecuteNonQuery()
    
                    ' Se crean los comandos para el SQL
                    cmdActualizado = New MySqlCommand()
                    cmdActualizado.Connection = cn
                    cmdActualizado.CommandText = sSqlOperaciones
                    cmdActualizado.CommandType = CommandType.Text
                    ActualizaSQL = cmdActualizado.ExecuteReader()
                    ActualizaSQL.Read()
                    
    
    
                        MessageBox.Show("Registro actualizado en la tabla!!!")
                        fLimpiar_textbox()
    
                    ActualizaSQL.Close()
    
                Catch ex As Exception
                    MessageBox.Show("Error en la Actualización!!!  " & Environment.NewLine & ex.Message.ToString)
                    Me.Visible = False
                    frmMenu.Show()
                End Try
    
            End If
            fCancelar()
        End Sub

    martes, 29 de enero de 2013 16:33

Respuestas