Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Masterpy en 27 de Septiembre 2016, 23:30

Título: System.Data.OleDb.OleDBException: No coinciden los tipos de datos en la expresió
Publicado por: Masterpy en 27 de Septiembre 2016, 23:30
Buenas colegas, me presento: Soy estudiante de Ingeniería en Sistemas Informáticos. Soy principiante en programación y estoy llevando la Materia de Visual Basic, y la verdad no sé como resolver este error:

System.Data.OleDb.OleDBException: No coinciden los tipos de datos en la expresión de criterios

. Les agradecería un montón si me pueden ayudar.

Título: Re:Error en Visual Basic
Publicado por: Masterpy en 27 de Septiembre 2016, 23:33
Este es mi código

De mi Form 1

Código: [Seleccionar]
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        conectarse()


    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim id As String
        id = TextBox1.Text
        consultar(id)

    End Sub
End Class



De mi modulo

Código: [Seleccionar]
New OleDb.OleDbCommand
    Public dr As OleDb.OleDbDataReader



    Public Sub conectarse()

        Try
            conn.Open()
            MsgBox("Conexion Exitosa")
        Catch ex As Exception
            MsgBox(ex.ToString)

        End Try


    End Sub

    Public Sub consultar(ByRef identificacion As String)
        cmd.Connection = conn
        cmd.CommandType = CommandType.Text

        If identificacion <> "" Then
            cmd.CommandText = "SELECT NOMBRES, APELLIDOS, CORREO, DIRECCION FROM PERSONA WHERE IDPERSONA=" + identificacion
        Else
            cmd.CommandText = "SELECT NOMBRES, APELLIDOS, CORREO, DIRECCION FROM PERSONA "
        End If

        Try
            dr = cmd.ExecuteReader()

            If dr.HasRows Then
                While dr.Read()
                    MsgBox(dr(0).ToString + " " + dr(1).ToString + " " + dr(2).ToString + " " + dr(3).ToString)

                End While
            Else
                MsgBox("No existen registros para la consulta")

            End If

            dr.Close()

        Catch ex As Exception
            MsgBox(ex.ToString)


        End Try
    End Sub
End Module

Título: Re:System.Data.OleDb.OleDBException: No coinciden los tipos de datos en la expresió
Publicado por: Ogramar en 08 de Octubre 2016, 18:43
Buenas parece que identificacion es un String

Public Sub consultar(ByRef identificacion As String)

En la expresión WHERE IDPERSONA=" + identificacion

es posible que te indique que no coinciden los tipos de datos, es decir, que IDPERSONA es un valor numérico mientras que identificacion es un tipo String

Es posible que el error esté relacionado con esto.

Puede que te sea de ayuda este curso donde están los conceptos básico de Visual Basic: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

Salu2
Título: Re:System.Data.OleDb.OleDBException: No coinciden los tipos de datos en la expresió
Publicado por: Masterpy en 10 de Octubre 2016, 01:52
Muchas gracias por la respuesta. Voy a seguir investigando.