none
problema con conexion de base de datos RRS feed

  • Pregunta

  • Hola a todos estoy elaborando una aplicacion que tiene un formanulario MDiContainer y muchos formularios mdiChildren, en un manejo de inventario en unos creo los productos y en las ventas los utilizo para registro pero sin embargo cuando registro y guardo un nuevo producto la aplicacion se sierra por completo y me sale que vshot32.exe dejo de funcionar.. y no tengo ni idea de cual sea el problema aqui dejo el codigo que uso para registrar datos.

     Dim strvalidacion As String = ""
            If cbActEco.SelectedIndex = -1 Then strvalidacion &= "No se ha seleccionado la actividad economica"
            If txtCodigoFam.Text = "" Then strvalidacion &= " No se ha ingresado el codigo de la Familia"
            If txtDescFam.Text = "" Then strvalidacion &= " No se ha ingresado el nombre de la Familia"
            Dim strRepetido As String = ""
            If strvalidacion = "" Then
                Dim strCodActEco As String = Mid(cbActEco.Text, 1, InStr(cbActEco.Text, "-") - 1)
                Dim drFamilia As OleDbDataReader
                Dim cmdFamilia As OleDbCommand = New OleDbCommand("SELECT * FROM FAMILIA")
                cmdFamilia.Connection = abrirConexionOleDb(pstrRuta, "Codigo")
                cmdFamilia.Connection.Open()
                drFamilia = cmdFamilia.ExecuteReader
                While drFamilia.Read
                    If drFamilia("Codigo") = txtCodigoFam.Text Or drFamilia("Descripcion") = txtDescFam.Text Then
                        strRepetido = "La Familia ingresada contiene los mismos datos que " & drFamilia("Codigo") & "-" & drFamilia("Descripcion")
                    End If
                End While
                drFamilia.Close()
                If strRepetido <> "" Then
                    MsgBox(strRepetido)
                Else
                    cmdFamilia.CommandText = "INSERT INTO FAMILIA (Codigo, Descripcion, CodActEco) VALUES (@Codigo, @Descripcion, @CodActEco)"
                    cmdFamilia.Parameters.Clear()
                    If chkbxCombinar.Checked Then
                        cmdFamilia.Parameters.AddWithValue("@Codigo", strCodActEco & txtCodigoFam.Text)
                    Else
                        cmdFamilia.Parameters.AddWithValue("@Codigo", txtCodigoFam.Text)
                    End If
                    cmdFamilia.Parameters.AddWithValue("@Descripcion", txtDescFam.Text)
                    cmdFamilia.Parameters.AddWithValue("@CodActEco", strCodActEco)
                    cmdFamilia.ExecuteNonQuery()
                    MsgBox("Familia Registrada Correctamente")
                    If chkbxCombinar.Checked Then
                        Dim registro = LisVieFamilias.Items.Add(strCodActEco & txtCodigoFam.Text)
                        registro.SubItems.Add(txtDescFam.Text)
                    Else
                        Dim registro = LisVieFamilias.Items.Add(txtCodigoFam.Text)
                        registro.SubItems.Add(txtDescFam.Text)
                    End If
                    txtCodigoFam.Text = ""
                    txtDescFam.Text = ""
                End If
            End If

    y este es el codigo que utilizo para obtener los registro ingresados

    Dim drFamilia As OleDbDataReader
            Dim cmdFamila As OleDbCommand
            cmdFamila = New OleDbCommand("SELECT * FROM Familia")
            cmdFamila.Connection = abrirConexionOleDb(pstrRuta, "Codigo")
            cmdFamila.Connection.Open()
            drFamilia = cmdFamila.ExecuteReader
            If drFamilia.HasRows Then
                While drFamilia.Read
                    Dim registro = LisVieFamilias.Items.Add(drFamilia("Codigo"), 0)
                    registro.SubItems.Add(drFamilia("Descripcion"))
                End While
            Else
                MsgBox("No se han ingresado familias" & Chr(13) & "Ingrese familias para poder continuar")
                Me.Close()
            End If
            drFamilia.Close()
            cmdFamila.Connection.Close()
            cmdFamila.Dispose()
            cmdFamila.Connection.Dispose()

    espero puedan ayudarme y recalco que eso me pasa con casi todos las bases que implican el insertar un registro y que luego lo utilice o lo llame desde otro formulario

    lunes, 9 de septiembre de 2019 20:14

Todas las respuestas