none
Problemas con ExecuteReader RRS feed

  • Pregunta

  • Hola a todos

    Es la primera vez que posteo una pregunta por que sinceramente no encuentro la razon del problema. 

    Tengo un servidor con sql 2016 y una consulta sql que une 3 tablas para obtener un total de registros. Cuando ejecuto la aplicacion en mi laptop lo procesa todo normal. De echo tengo la aplicacion instalada en otra computadora, y ahi viene el problema, Por alguna razon que no entiendo no ejecuta la instruccion sql.

    aqui les dejo parte del codigo

    Public Sub TotalRec()
            Dim sqlCount As String
            Dim cmd1, cmd2 As New SqlCommand
            Dim dr1, dr2 As SqlDataReader

            cStrSearch = "HA','TD"
            nBackOrd = 0
            ntotRec = 0
            nowToday = nowToday.AddDays(-365) 'Resta 1 año

            xNowToday = Mid(nowToday, 7, 4) + Mid(nowToday, 1, 2) + Mid(nowToday, 4, 2)

            sqlCount = "SELECT dbo.SorMaster.Customer, " &
                "dbo.SorDetail.MStockCode, " &
                "dbo.InvWarehouse.QtyOnHand, " &
                "dbo.InvWarehouse.QtyOnBackOrder, " &
                "dbo.SorDetail.MOrderQty, " &
                "dbo.SorDetail.MBackOrderQty, " &
                "dbo.SorMaster.SalesOrder, " &
                "dbo.SorMaster.OrderStatus, " &
                "dbo.SorDetail.SalesOrderLine, " &
                "dbo.SorMaster.OrderDate, " &
                "dbo.SorMaster.ReqShipDate, " &
                "dbo.SorDetail.MLineShipDate, " &
                "dbo.SorDetail.MCustRequestDat, " &
                "dbo.SorDetail.MWarehouse, " &
                "dbo.SorDetail.MPrice, " &
                "dbo.SorDetail.NComment, " &
                "dbo.SorMaster.CustomerPoNumber, " &
                "dbo.SorMaster.ShippingInstrs, " &
                "dbo.SorMaster.SpecialInstrs, " &
                "dbo.InvMaster.Mass, " &
                "dbo.InvMaster.AlternateKey1, " &
                "dbo.InvMaster.AlternateKey2, " &
                "dbo.InvMaster.UserField1, " &
                "dbo.InvMaster.Supplier " &
                "FROM dbo.InvMaster INNER JOIN ((dbo.SorMaster INNER JOIN dbo.SorDetail ON dbo.SorMaster.[SalesOrder] = dbo.SorDetail.[SalesOrder]) " &
                "INNER JOIN dbo.InvWarehouse ON dbo.SorDetail.[MStockCode] = dbo.InvWarehouse.[StockCode]) ON dbo.InvMaster.StockCode = dbo.SorDetail.MStockCode " &
                "WHERE (((dbo.SorMaster.OrderStatus)>='1' And (dbo.SorMaster.OrderStatus)<='4')) " &
                "AND (dbo.SorDetail.MWarehouse IN('" & cStrSearch & "')) AND (dbo.InvWarehouse.Warehouse IN('" & cStrSearch & "')) " &
                "AND dbo.SorDetail.MBackOrderQty <> 0 AND dbo.SorMaster.TargetWarehouse <> 'UG' AND dbo.SorMaster.Customer <> 'MCF' " &
                "AND dbo.SorMaster.OrderDate >= '" & xNowToday & "' ORDER BY dbo.SorMaster.Customer, dbo.SorDetail.MStockCode, dbo.SorDetail.SalesOrder"

            cmd1.CommandType = CommandType.Text
            cmd1.Connection = sqlconn3
            cmd1.CommandText = sqlCount

            sqlconn3.Open()
            dr1 = cmd1.ExecuteReader()
            If dr1.HasRows Then
                While dr1.Read()
                    ntotRec = ntotRec + 1
                End While
            End If
            dr1.Close()
            sqlconn3.Close()

            'aqui tuve q agregar esta linea por que en como repito en mi latop ejecuta todo normal

            'pero en la otra pc el valor de ntotrec es igual a cero

            If ntotRec = 0 Then
                MsgBox("1. No entro: " + ntotRec.ToString)
            Else
                MsgBox("1. entro: " + ntotRec.ToString)
            End If

    End Sub

    vuelvo a repetir, el valor de ntotrec es cero, osea nunca ejecuta el "dr1 = cmd1.ExecuteReader()"

    Es bastante complicado saber exactamente el error por que en mi laptop no me da ningun error, pero cuando instalo la aplicacion en otra pc, y al ejecutar la aplicacion, me da el siguiente error

    Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error
    and attempt to continue. If you click Quit, the application will close immediately.

    Object reference not set to an instance of an object.

    La cadena de conexion que utilize es:

    Public sqlconn3 As New SqlClient.SqlConnection("integrated security=SSPI;data source=SERV2;persist security info=False;initial catalog=SysproCompany1")

    Talvez tenga que instalar algo adicional en la otra pc...?

    Alguien tiene alguna sugerencia...?

    Muchas gracias por adelantado.

    Jorge



    • Editado jytorres martes, 5 de diciembre de 2017 22:53
    martes, 5 de diciembre de 2017 22:48

Respuestas

  • "jytorres" escribió:

    > Es bastante complicado saber exactamente el error por que en mi laptop
    > no me da ningun error, pero cuando instalo la aplicacion en otra pc, y
    > al ejecutar la aplicacion, me da el siguiente error
    >
    > Unhandled exception has occurred in your application. If you click Continue,
    > the application will ignore this error and attempt to continue. If you click
    > Quit, the application will close immediately.
    >
    > Object reference not set to an instance of an object.
    >
    > Alguien tiene alguna sugerencia...?

    Hola:

    Observando el mensaje de error que obtienes, lo único que te puedo decir es que estás queriendo hacer uso de un objeto cuyo valor es Nothing, de ahí que obtengas el clásico mensaje de error de "Referencia a objeto no establecida como instancia de un objeto", que es la traducción al español del error que has indicado.

    ¿Por qué en tu "laptop" no obtienes un error y sí en aquellos otros PCs donde instalas tu aplicación? Puede que lo más seguro se deba a que en esos PCs falte algo que no falta en tu portátil.

    Observando tu código, el cual te digo de antemano que es mejorable, me inclinaría a pensar que la excepción la obtienes en la siguiente línea:

        sqlconn3.Open()

    > La cadena de conexion que utilize es:
    >
    > Public sqlconn3 As New SqlClient.SqlConnection(
    > "integrated security=SSPI;data source=SERV2;persist security info=False;
    > initial catalog=SysproCompany1")

    Iniciar el objeto SqlConnection de esa manera es como si jugaras con fuego, porque lo único que te puede pasar es que te "quemes" si no controlas bien el valor que en cada instante tiene el campo público llamado sqlconn3.

    Prueba a declarar el objeto SqlConnection dentro del procedimiento TotalRec:

       Public Sub TotalRec()
    
            Dim sqlconn3 As SqlConnection = Nothing
    
            Try
                ' Inicializar el objeto
                sqlconn3 = New SqlConnection("integrated security=SSPI;data source=SERV2;persist security info=False;initial catalog=SysproCompany1")
    ' Escribe aquí el resto del código de tu procedimiento. Catch ex As Exception ' Se ha producido un error MessageBox.Show(ex.Message) Finally If (Not sqlconn3 Is Nothing) Then
    ' Destruir el objeto SqlConnection. sqlconn3.Dispose() End If
    End Try End Sub

    > La cadena de conexion que utilize es:
    >
    > Public sqlconn3 As New SqlClient.SqlConnection(
    > "integrated security=SSPI;data source=SERV2;persist security info=False;
    > initial catalog=SysproCompany1")

    Observando el nombre del servidor que aparece en la cadena de conexión, te preguntaría si en todos los PCs donde has instalado tu aplicación también el nombre del servidor es SERV2. Si no es así, no me extraña que obtengas la oportuna excepción al intentar establecer una conexión con dicho servidor.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.





    martes, 5 de diciembre de 2017 23:17
    Moderador
  • "jytorres" escribió:

    > Public sqlconn3 As New SqlClient.SqlConnection(
    > "integrated security=SSPI;data source=SERV2;persist security info=False;
    > initial catalog=SysproCompany1")
    >
    > Como te has dado cuenta, el nombre del servidor esta en la cadena de conexion,
    > en el codigo, por lo tanto si lo instalo en otra pc, deberia de tomar el mismo
    > nombre del servidor que se indica en la cadena de conexion no es asi...? me
    > podrias explicar un poquito mas por favor...?

    "SERV2" será el nombre de tu laptop que has establecido en la configuración de tu sistema operativo, pero desde luego, no esperes que los restantes PCs también tengan como nombre "SERV2". Desde luego, te puedo asegurar que en mi PC no funcionaría esa cadena de conexión si en el mismo ejecutara tu aplicación. :-))

    Si hablamos que la base de datos de SQL Server se encuentra alojada en la instancia predeterminada de una instalación normal y corriente de Microsoft SQL Server, el valor que le deberías establecer al parámetro Data Source de la cadena de conexión es (local):

       
    Dim cadenaConexion As String = "Data Source=(local);Initial Catalog=SysproCompany1;Integrated Security=SSPI"

    De ésta manera, digamos que tu aplicación funcionaría en un 70-80 por ciento de aquellos PCs donde aquella se instale. En el resto no funcionaría porque seguramente la base de datos se encuentra residente en una instancia con nombre de SQL Server, por tanto, ese es el nombre que le tienes que asignar al parámetro Data Source:

    Dim cadenaConexion As String = "Data Source=(local)\NombreInstancia;Initial Catalog=SysproCompany1;Integrated Security=SSPI;Persist Security Info=False"

    > Es totalmente raro y la verdad no se que pueda ser. En mi laptop pues tengo
    > Visual Studio Profesional 2015 y tambien tengo SQL Management Studio... Tal
    > vez me falten algunos drivers o tal vez pueda instalar alguna utilidad del
    > SQL Server algo asi como una version cliente...?

    Si tu aplicación solamente utiliza el motor de base de datos de SQL Server, éste también deberá estar instalado en los PCs cliente, aunque sea la versión Express o LocalDb. Y en cuanto a la versión de .NET Framework, deberán también tener instalada la misma versión con la que compilates tu aplicación. Y por supuesto, que la base de datos se encuentre alojada en la instancia predeterminada "(local)" del servidor de SQL Server. En principio, esos son los tres únicos requisitos que necesitan los PCs cliente.

    Yo me inclinaría a pensar que el problema lo tienes con el valor que le asignas al parámetro Data Source de la cadena de conexión, al uso de VARIABLES GLOBALES, y a no controlar adecuadamente las excepciones que puedan surgir.

    Te dejo un ejemplo que hace uso de un lector de datos (un objeto SqlDataReader) para leer las facturas de un cliente:

    Imports System.Data.SqlClient

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim cadenaConexion As String = "Data Source=(local);Initial Catalog=Prueba;Integrated Security=SSPI" Try ' Establecer la conexión con la base de datos de SQL Server ' que se encuentra alojada en la instancia predeterminada ' de Microsoft SQL Server. ' Using cnn As New SqlConnection(cadenaConexion) ' Crear el comando. Dim cmd As SqlCommand = cnn.CreateCommand() ' Especificar la consulta T-SQL que deseamos ejecutar cmd.CommandText = "SELECT * FROM Facturas WHERE IdCliente=@id" ' Añadir los parámetros con nombre que requiere la consulta T-SQL. cmd.Parameters.AddWithValue("@id", 4300018) ' Abrir la conexión. cnn.Open() ' Obtener un lector de datos Dim dr As SqlDataReader = cmd.ExecuteReader() If (dr.HasRows) Then ' Si existen filas, leemos los datos While dr.Read() ' Obtener el valor Integer existente en la primera columna Dim idFactura As Integer = dr.GetInt32(0) ' Obtener el valor DateTime existente en la segunda columna Dim fecha As DateTime = dr.GetDateTime(1) ' Obtener el valor Decimal existente en la sexta columna Dim total As Decimal = dr.GetDecimal(5) Dim msg As String = String.Format("IdFactura: {0}, Fecha: {1}, Total: {2}", idFactura, fecha, total) MessageBox.Show(msg) End While End If End Using Catch ex As Exception ' Se ha producido un error MessageBox.Show(ex.Message) End Try End Sub


    Fíjate que todo lo hacemos en un mismo procedimiento de evento, sin necesidad de tener declaradas variables globales que para lo único que sirven es para proporcionar "dolores de cabeza". ;-)

    Adapta el ejemplo a tus necesidades.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    miércoles, 6 de diciembre de 2017 7:37
    Moderador

Todas las respuestas

  • "jytorres" escribió:

    > Es bastante complicado saber exactamente el error por que en mi laptop
    > no me da ningun error, pero cuando instalo la aplicacion en otra pc, y
    > al ejecutar la aplicacion, me da el siguiente error
    >
    > Unhandled exception has occurred in your application. If you click Continue,
    > the application will ignore this error and attempt to continue. If you click
    > Quit, the application will close immediately.
    >
    > Object reference not set to an instance of an object.
    >
    > Alguien tiene alguna sugerencia...?

    Hola:

    Observando el mensaje de error que obtienes, lo único que te puedo decir es que estás queriendo hacer uso de un objeto cuyo valor es Nothing, de ahí que obtengas el clásico mensaje de error de "Referencia a objeto no establecida como instancia de un objeto", que es la traducción al español del error que has indicado.

    ¿Por qué en tu "laptop" no obtienes un error y sí en aquellos otros PCs donde instalas tu aplicación? Puede que lo más seguro se deba a que en esos PCs falte algo que no falta en tu portátil.

    Observando tu código, el cual te digo de antemano que es mejorable, me inclinaría a pensar que la excepción la obtienes en la siguiente línea:

        sqlconn3.Open()

    > La cadena de conexion que utilize es:
    >
    > Public sqlconn3 As New SqlClient.SqlConnection(
    > "integrated security=SSPI;data source=SERV2;persist security info=False;
    > initial catalog=SysproCompany1")

    Iniciar el objeto SqlConnection de esa manera es como si jugaras con fuego, porque lo único que te puede pasar es que te "quemes" si no controlas bien el valor que en cada instante tiene el campo público llamado sqlconn3.

    Prueba a declarar el objeto SqlConnection dentro del procedimiento TotalRec:

       Public Sub TotalRec()
    
            Dim sqlconn3 As SqlConnection = Nothing
    
            Try
                ' Inicializar el objeto
                sqlconn3 = New SqlConnection("integrated security=SSPI;data source=SERV2;persist security info=False;initial catalog=SysproCompany1")
    ' Escribe aquí el resto del código de tu procedimiento. Catch ex As Exception ' Se ha producido un error MessageBox.Show(ex.Message) Finally If (Not sqlconn3 Is Nothing) Then
    ' Destruir el objeto SqlConnection. sqlconn3.Dispose() End If
    End Try End Sub

    > La cadena de conexion que utilize es:
    >
    > Public sqlconn3 As New SqlClient.SqlConnection(
    > "integrated security=SSPI;data source=SERV2;persist security info=False;
    > initial catalog=SysproCompany1")

    Observando el nombre del servidor que aparece en la cadena de conexión, te preguntaría si en todos los PCs donde has instalado tu aplicación también el nombre del servidor es SERV2. Si no es así, no me extraña que obtengas la oportuna excepción al intentar establecer una conexión con dicho servidor.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.





    martes, 5 de diciembre de 2017 23:17
    Moderador
  • Saludos Enrique

    Muchas gracias por tu respuesta.

    Hice los cambios que sugeriste en el codigo, incluyendo la instruccion Try..End.

    En mi laptop corre todo normal, pero en la otra pc cuando corro nuevamente la aplicacion tengo ahora otro mensaje:

    Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

    The ConnnectionString property has not been initialized.

    Sabes, cuando dices:

    Observando el nombre del servidor que aparece en la cadena de conexión, te preguntaría si en todos los PCs donde has instalado tu aplicación también el nombre del servidor es SERV2. Si no es así, no me extraña que obtengas la oportuna excepción al intentar establecer una conexión con dicho servidor.

    Como te has dado cuenta, el nombre del servidor esta en la cadena de conexion, en el codigo, por lo tanto si lo instalo en otra pc, deberia de tomar el mismo nombre del servidor que se indica en la cadena de conexion no es asi...? me podrias explicar un poquito mas por favor...?

    Muchas gracias.

    martes, 5 de diciembre de 2017 23:47
  • Hola Nuevamente Enrique

    Sorry, estaba olvidando algo en mi codigo, y Bueno lo corregi y pues volvi al mismo error del principio.

    Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.

    Object reference not set to an instance of an object.

    Como dices tu en mi laptop tal vez tengo algun software instalado que las otras no tiene. Estaba mirando los praogramas que tengo en mi laptop, y pues ahi veo una lista de frameworks que no veo en la otra pc, pero cuando trato de ver en la otra pc que framworks tengo instalado, me muestra que tengo la version 2.0, 4.0 and 4.5...

    Es totalmente raro y la verdad no se que pueda ser. En mi laptop pues tengo Visual Studio Profesional 2015 y tambien tengo SQL Management Studio... Tal vez me falten algunos drivers o tal vez pueda instalar alguna utilidad del SQL Server algo asi como una version cliente...?

    Gracias otra vez.

    miércoles, 6 de diciembre de 2017 0:11
  • Hoal pregunta, el error sucede cuando inicias le programa o solo cuando ejecutas la sentencia SQL, de ser así, para sacrme una duda, tienes los permisos de acceso del otro pc a SQL?
    miércoles, 6 de diciembre de 2017 1:19
  • "jytorres" escribió:

    > Public sqlconn3 As New SqlClient.SqlConnection(
    > "integrated security=SSPI;data source=SERV2;persist security info=False;
    > initial catalog=SysproCompany1")
    >
    > Como te has dado cuenta, el nombre del servidor esta en la cadena de conexion,
    > en el codigo, por lo tanto si lo instalo en otra pc, deberia de tomar el mismo
    > nombre del servidor que se indica en la cadena de conexion no es asi...? me
    > podrias explicar un poquito mas por favor...?

    "SERV2" será el nombre de tu laptop que has establecido en la configuración de tu sistema operativo, pero desde luego, no esperes que los restantes PCs también tengan como nombre "SERV2". Desde luego, te puedo asegurar que en mi PC no funcionaría esa cadena de conexión si en el mismo ejecutara tu aplicación. :-))

    Si hablamos que la base de datos de SQL Server se encuentra alojada en la instancia predeterminada de una instalación normal y corriente de Microsoft SQL Server, el valor que le deberías establecer al parámetro Data Source de la cadena de conexión es (local):

       
    Dim cadenaConexion As String = "Data Source=(local);Initial Catalog=SysproCompany1;Integrated Security=SSPI"

    De ésta manera, digamos que tu aplicación funcionaría en un 70-80 por ciento de aquellos PCs donde aquella se instale. En el resto no funcionaría porque seguramente la base de datos se encuentra residente en una instancia con nombre de SQL Server, por tanto, ese es el nombre que le tienes que asignar al parámetro Data Source:

    Dim cadenaConexion As String = "Data Source=(local)\NombreInstancia;Initial Catalog=SysproCompany1;Integrated Security=SSPI;Persist Security Info=False"

    > Es totalmente raro y la verdad no se que pueda ser. En mi laptop pues tengo
    > Visual Studio Profesional 2015 y tambien tengo SQL Management Studio... Tal
    > vez me falten algunos drivers o tal vez pueda instalar alguna utilidad del
    > SQL Server algo asi como una version cliente...?

    Si tu aplicación solamente utiliza el motor de base de datos de SQL Server, éste también deberá estar instalado en los PCs cliente, aunque sea la versión Express o LocalDb. Y en cuanto a la versión de .NET Framework, deberán también tener instalada la misma versión con la que compilates tu aplicación. Y por supuesto, que la base de datos se encuentre alojada en la instancia predeterminada "(local)" del servidor de SQL Server. En principio, esos son los tres únicos requisitos que necesitan los PCs cliente.

    Yo me inclinaría a pensar que el problema lo tienes con el valor que le asignas al parámetro Data Source de la cadena de conexión, al uso de VARIABLES GLOBALES, y a no controlar adecuadamente las excepciones que puedan surgir.

    Te dejo un ejemplo que hace uso de un lector de datos (un objeto SqlDataReader) para leer las facturas de un cliente:

    Imports System.Data.SqlClient

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim cadenaConexion As String = "Data Source=(local);Initial Catalog=Prueba;Integrated Security=SSPI" Try ' Establecer la conexión con la base de datos de SQL Server ' que se encuentra alojada en la instancia predeterminada ' de Microsoft SQL Server. ' Using cnn As New SqlConnection(cadenaConexion) ' Crear el comando. Dim cmd As SqlCommand = cnn.CreateCommand() ' Especificar la consulta T-SQL que deseamos ejecutar cmd.CommandText = "SELECT * FROM Facturas WHERE IdCliente=@id" ' Añadir los parámetros con nombre que requiere la consulta T-SQL. cmd.Parameters.AddWithValue("@id", 4300018) ' Abrir la conexión. cnn.Open() ' Obtener un lector de datos Dim dr As SqlDataReader = cmd.ExecuteReader() If (dr.HasRows) Then ' Si existen filas, leemos los datos While dr.Read() ' Obtener el valor Integer existente en la primera columna Dim idFactura As Integer = dr.GetInt32(0) ' Obtener el valor DateTime existente en la segunda columna Dim fecha As DateTime = dr.GetDateTime(1) ' Obtener el valor Decimal existente en la sexta columna Dim total As Decimal = dr.GetDecimal(5) Dim msg As String = String.Format("IdFactura: {0}, Fecha: {1}, Total: {2}", idFactura, fecha, total) MessageBox.Show(msg) End While End If End Using Catch ex As Exception ' Se ha producido un error MessageBox.Show(ex.Message) End Try End Sub


    Fíjate que todo lo hacemos en un mismo procedimiento de evento, sin necesidad de tener declaradas variables globales que para lo único que sirven es para proporcionar "dolores de cabeza". ;-)

    Adapta el ejemplo a tus necesidades.


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    miércoles, 6 de diciembre de 2017 7:37
    Moderador