Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: pseudostark en 5 Octubre 2015, 03:10 am



Título: ¿como corregir el error oledbexception?
Publicado por: pseudostark en 5 Octubre 2015, 03:10 am
Disculpen tengo el error:
"No se controló OleDbException. No se han especificado valores para algunos de los parámetros requeridos."

En el siguiente código:

Imports System.Data.OleDb   'permite el manejo de base de datos a access

Public Class FormModificar

    Private Sub FormModificar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


    End Sub

    Private Sub Interface_Entrada()
        'SE EJECUTA CUANDO SE CARGA EL FORMULARIO
        'HABILITADO
        Lab_IDContacto.Enabled = True
        Text_IdContacto.Enabled = True
        Cmb_Buscar.Enabled = True



        'DESHABILITADOS
        Lab_Nombre.Enabled = False
        Text_Nombre.Enabled = False
        Lab_ApePat.Enabled = False
        Text_ApePat.Enabled = False
        Lab_ApeMat.Enabled = False
        Text_ApeMat.Enabled = False
        Lab_Puesto.Enabled = False
        Text_Puesto.Enabled = False
        Lab_Empresa.Enabled = False
        Text_Empresa.Enabled = False
        Lab_Area.Enabled = False
        Text_Area.Enabled = False
        Lab_Correo.Enabled = False
        Text_Correo.Enabled = False
        Lab_TelOfi.Enabled = False
        Text_TelOfi.Enabled = False
        Lab_Ext.Enabled = False
        Text_Extension.Enabled = False
        Lab_Celular.Enabled = False
        Text_Celular.Enabled = False

        Cmb_Guardar.Enabled = False


    End Sub

    Private Sub Interface_Datos()
        'SE EJECUTA CUANDO SE CARGA EL FORMULARIO
        'DESHABILITADO
        Lab_IDContacto.Enabled = False
        Text_IdContacto.Enabled = False
        Cmb_Buscar.Enabled = False



        'HABILITADOS
        Lab_Nombre.Enabled = True
        Text_Nombre.Enabled = True
        Lab_ApePat.Enabled = True
        Text_ApePat.Enabled = True
        Lab_ApeMat.Enabled = True
        Text_ApeMat.Enabled = True
        Lab_Puesto.Enabled = True
        Text_Puesto.Enabled = True
        Lab_Empresa.Enabled = True
        Text_Empresa.Enabled = True
        Lab_Area.Enabled = True
        Text_Area.Enabled = True
        Lab_Correo.Enabled = True
        Text_Correo.Enabled = True
        Lab_TelOfi.Enabled = True
        Text_TelOfi.Enabled = True
        Lab_Ext.Enabled = True
        Text_Extension.Enabled = True
        Lab_Celular.Enabled = True
        Text_Celular.Enabled = True

        Cmb_Guardar.Enabled = True


    End Sub

    Function Buscar_Registro(ByVal xId As String) As Boolean

        '1. CONVERTIR CADENA EN NUMERO
        Dim id As String
        id = xId

        '2. CONEXION
        Dim Conexion As New OleDbConnection

        Conexion.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\\Users\\Andres\\Documents\\Proyecto Contactos\\Contactos\\Contactos\\bin\\Debug\\Contactos.mdb; Persist Security Info =  False"

        '3. CADENA SQL

        Dim CadenaSql As String = "SELECT * FROM Contacto WHERE idContacto= '" & id & "'"
        '" SELECT * FROM Contacto WHERE idContacto = " & id



        '4.ADAPTADOR
        Dim Adaptador As New OleDbDataAdapter(CadenaSql, Conexion)

        '5. DATA SET
        Dim Ds As New DataSet

        '6.LLENAR DATA SET

        Conexion.Open() 'Abre la conexion con  BD
        Adaptador.Fill(Ds) 'El adaptador llena con datos al dataset
        Conexion.Close()


        '7. CONTAR REGISTRO

        If (Ds.Tables(0).Rows.Count = 0) Then
            'NO ENCONTRO EL REGISTRO

            Return False

        Else
            'SI ENCONTRO EL REGISTRO
            'CARGAR LOS TEXTBOX DEL FORMULARIO CON LA INFORMACION DEL REGISTRO ENCONTRADO
            Text_Nombre.Text = Ds.Tables(0).Rows(0)("Nombre").ToString()
            Text_ApePat.Text = Ds.Tables(0).Rows(0)("ApePat").ToString()
            Text_ApeMat.Text = Ds.Tables(0).Rows(0)("ApeMat").ToString()
            Text_Puesto.Text = Ds.Tables(0).Rows(0)("Puesto").ToString()
            Text_Empresa.Text = Ds.Tables(0).Rows(0)("Empresa").ToString()
            Text_Area.Text = Ds.Tables(0).Rows(0)("Area").ToString()
            Text_Correo.Text = Ds.Tables(0).Rows(0)("Correo").ToString()
            Text_TelOfi.Text = Ds.Tables(0).Rows(0)("TelOficina").ToString()
            Text_Extension.Text = Ds.Tables(0).Rows(0)("ExtOficina").ToString()
            Text_Celular.Text = Ds.Tables(0).Rows(0)("TelCelular").ToString()
            Ds.Dispose()

            'MOSTRAR LOS DATOS

            Return True
        End If

    End Function

    Function Modificar_Registro(ByVal idContacto As String, ByVal Nombre As String, ByVal ApPaterno As String, ByVal ApMaterno As String, ByVal Puesto As String, ByVal Empresa As String, ByVal Area As String, ByVal Correo As String, ByVal TelOfi As String, ByVal Ext As String, ByVal TelCel As String)

        'Convertir
        Dim CodContacto As String = idContacto
        Dim NombreContacto As String = Nombre
        Dim APContacto As String = ApPaterno
        Dim AMContacto As String = ApMaterno
        Dim PuestoContacto As String = Puesto
        Dim EmpresaContacto As String = Empresa
        Dim AreaContacto As String = Area
        Dim CorreoContacto As String = Correo
        Dim TOContacto As String = TelOfi
        Dim ExtContacto As String = Ext
        Dim TCContacto As String = TelCel

        'Conexion
        Dim Conexion As New OleDbConnection

        Conexion.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\\Users\\Andres\\Documents\\Proyecto Contactos\\Contactos\\Contactos\\bin\\Debug\\Contactos.mdb; Persist Security Info =  False"

        'Intruccion SQL
        Dim CadSQL As String = " UPDATE Contacto SET "
        CadSQL = CadSQL + " Nombre =         '" & NombreContacto & "',"
        CadSQL = CadSQL + " ApePat =         '" & APContacto & "',"
        CadSQL = CadSQL + " ApeMat=      '" & AMContacto & "',"
        CadSQL = CadSQL + " Puesto =      '" & PuestoContacto & "',"
        CadSQL = CadSQL + " Correo  =      '" & CorreoContacto & "',"
        CadSQL = CadSQL + " TelOficina =       '" & TOContacto & "',"
        CadSQL = CadSQL + " ExtOficina =       '" & ExtContacto & "',"
        CadSQL = CadSQL + " TelCelular  =      '" & TCContacto & "',"
        CadSQL = CadSQL + " Empresa =       '" & EmpresaContacto & "',"
        CadSQL = CadSQL + " Area  =       " & AreaContacto & ""
        CadSQL = CadSQL + " WHERE  idContacto =       " & CodContacto


        'Crear un Comando
        Dim Comando As OleDbCommand = Conexion.CreateCommand()
        Comando.CommandText = CadSQL

        'Ejecutar la consulta de accion
        Conexion.Open()
        Comando.ExecuteNonQuery()
        Conexion.Close()


        Return True

    End Function

 
    Private Sub Cmb_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_Buscar.Click
        If Buscar_Registro(Text_IdContacto.Text) = False Then
            'ENVIAR MENSAJE QUE EL REGISTRO YA EXISTE
            MessageBox.Show("El registro no existe.")
            Text_IdContacto.Focus()
        Else
            Interface_Datos()
            Text_Nombre.Focus()
            'Limpiar_Formulario() 'LLAMA AL METODO PARA LIMPIAR FORMULARIO
        End If
    End Sub

    Private Sub Cmb_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_Guardar.Click
        Modificar_Registro(Text_IdContacto.Text, Text_Nombre.Text, Text_ApePat.Text, Text_ApeMat.Text, Text_Puesto.Text, Text_Empresa.Text, Text_Area.Text, Text_Correo.Text, Text_TelOfi.Text, Text_Extension.Text, Text_Celular.Text) 'Funcion que modifica datos de contacto en la base de datos
        Interface_Entrada() 'PREPARA EL FORMULARIO PARA INGRESAR UN NUEVO REGISTRO
        Text_IdContacto.Focus() 'ENVIA EL FOCO AL ID DEL CONTACTO
        Limpiar_Formulario() 'LLAMA AL METODO PARA LIMPIAR FORMULARIO
    End Sub

    Private Sub Limpiar_Formulario()
        'LIMPIA LOS TEXTBOX DEL FORMULARIO
        Text_Nombre.Clear()
        Text_ApePat.Clear()
        Text_ApeMat.Clear()
        Text_Puesto.Clear()
        Text_Empresa.Clear()
        Text_Area.Clear()
        Text_Correo.Clear()
        Text_TelOfi.Clear()
        Text_Extension.Clear()
        Text_Celular.Clear()


    End Sub



    Private Sub Cmb_Cancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_Cancelar.Click
        Me.Close()
    End Sub
End Class





¿Alguien me podría ayudar? Por favor.