none
codigo error RRS feed

  • Pregunta

  • Advertencia 1 No se realizará inferencia del tipo de la variable 'Drw' porque está enlazada a un campo en un ámbito de inclusión. Cambie el nombre de 'Drw' o use el nombre completo (por ejemplo, 'Me.Drw' o 'MyBase.Drw'). por que me salio esto

     Private Sub FrmManProductos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            DaPro = New SqlDataAdapter("Select Cod_Producto, Nom_Producto, Descripcion As Categoría, Precio, Stock From Producto Pro Inner Join Categoria Cat On Pro.IdCategoria = Cat.Cod_Categoria", Bd)
            DaPro.Fill(DsPro, "Producto")

            DaCat = New SqlDataAdapter("Select * From Categoria", Bd)
            DaCat.Fill(DsCat, "Categoria")

            For Each Drw In DsCat.Tables("Categoria").Rows
                CboCategoria.Items.Add(Drw("Descripcion"))
            Next

            Call Mostrar_Datos() : Call DesHabilitar()
        End Sub

    martes, 8 de agosto de 2017 3:58

Respuestas

  • El mensaje de advertencia te indica que la variable 'Drw' tiene el mismo nombre que otra variable que estás utilizando en un ámbito superior al bloque For Each. ¿Has intentando cambiar el nombre de la variable 'Drw' a 'Fila' -por ejemplo-?


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 8 de agosto de 2017 4:11
  • "wilmer iman" preguntó:

    > Advertencia 1
    > No se realizará inferencia del tipo de la variable 'Drw' porque está
    > enlazada a un campo en un ámbito de inclusión. Cambie el nombre de
    > 'Drw' o use el nombre completo (por ejemplo, 'Me.Drw' o 'MyBase.Drw').
    >
    > por que me salio esto
    >
    > For Each Drw In DsCat.Tables("Categoria").Rows

    Porque lo más seguro es que tengas declarado a nivel del formulario otra variable o campo llamado Drw con cualquier otro tipo de dato diferente al tipo de dato System.Data.DataRow, que es el tipo de dato que se inferirá en la variable de iteración 'Drw' existente en el bucle For Each ... Next.

    Si no deseas cambiar el nombre a ésta última variable, al menos declárala explícitamente con el tipo de dato DataRow:

        For Each Drw As DataRow In DsCat.Tables("Categoria").Rows
            CboCategoria.Items.Add(Drw("Descripcion").ToString())
        Next

    Se comprende que a nivel del proyecto o al comienzo del formulario tienes importado el siguiente espacio de nombres:

    Imports System.Data

    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, 8 de agosto de 2017 6:52
    Moderador

Todas las respuestas

  • El mensaje de advertencia te indica que la variable 'Drw' tiene el mismo nombre que otra variable que estás utilizando en un ámbito superior al bloque For Each. ¿Has intentando cambiar el nombre de la variable 'Drw' a 'Fila' -por ejemplo-?


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 8 de agosto de 2017 4:11
  • "wilmer iman" preguntó:

    > Advertencia 1
    > No se realizará inferencia del tipo de la variable 'Drw' porque está
    > enlazada a un campo en un ámbito de inclusión. Cambie el nombre de
    > 'Drw' o use el nombre completo (por ejemplo, 'Me.Drw' o 'MyBase.Drw').
    >
    > por que me salio esto
    >
    > For Each Drw In DsCat.Tables("Categoria").Rows

    Porque lo más seguro es que tengas declarado a nivel del formulario otra variable o campo llamado Drw con cualquier otro tipo de dato diferente al tipo de dato System.Data.DataRow, que es el tipo de dato que se inferirá en la variable de iteración 'Drw' existente en el bucle For Each ... Next.

    Si no deseas cambiar el nombre a ésta última variable, al menos declárala explícitamente con el tipo de dato DataRow:

        For Each Drw As DataRow In DsCat.Tables("Categoria").Rows
            CboCategoria.Items.Add(Drw("Descripcion").ToString())
        Next

    Se comprende que a nivel del proyecto o al comienzo del formulario tienes importado el siguiente espacio de nombres:

    Imports System.Data

    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, 8 de agosto de 2017 6:52
    Moderador