Visual Basic.NET - no existe este campo "Fecha" y la clase "Obras"

 
Vista:
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

no existe este campo "Fecha" y la clase "Obras"

Publicado por Miguel (281 intervenciones) el 21/12/2021 21:13:20
Tengo un proyecto en pruebas y en algún momento me he despistado y he debido tocar algo y ahora tengo un problema.

La clase es esta solo pongo un valor, dicha clase esta en la Capa de Entidad:

Public Class Obras
Public Property IdObra as Int16
Public Property Fecha As Date
End Class

En la Capa de Presentación tengo el código que ha pasado de estar funcionando a dar error:
Solo muestro los valores de dos campos

Public Class Obras
'********************* Declaración de variables globales **********************'
Private objObra = New ObrasBL
Private eObra As New Obras
Private miFecha As Object

Private Sub MuestraDatos(eObra As Obras)
txtIdObra.Text = Convert.ToInt16(eObra.IdObra)
miFecha = ("01/01/1900")
If eObra.FechaMensual = miFecha Then
txtFechaMensual.Text = miFecha
Else
txtFechaMensual.Text = Convert.ToString(eObra.FechaMensual)
End If
End sub

Pues después de tener datos cargados probando no me doy cuenta que he podido cambiar en algún sitio que ahora me dice que el campo "FechaMensual en los dos sitios que aparece no es un campo de Obras"

Me estoy volviendo loco buscando pero no soy capaz de ver donde me he colado.

Haber si alguna persona me puede orientar para buscar el fallo.

Gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

no existe este campo "Fecha" y la clase "Obras"

Publicado por Phil Rob (1548 intervenciones) el 21/12/2021 21:31:27
Hola Miguel,

Pienso que en las clase Obra, declares el campo Fecha y, que en el codigo cliente, intentas de utilizar FechaMensual. Este serias el error.

Buenas noches ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

no existe este campo "Fecha" y la clase "Obras"

Publicado por Miguel (281 intervenciones) el 21/12/2021 22:52:00
Hola Phil esto es programación en N Capas y tiene una metodología donde declarar todo. El campo Fecha es un campo texbox y se conecta a la aplicación a través de la Clase Obras que es donde están declarados los campos de la base de de datos del Sql Server.

Ahora ya estaba probando el proyecto y quería llegar a la parte que hablamos hace algún tiempo en la cual se trataba de pasar un parámetro a otro proyecto diferente así que hasta que no tenga otra vez esto funcionando no podre pasarte el código si es que quieres pegar un vistazo a este tipo de programación.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

no existe este campo "Fecha" y la clase "Obras"

Publicado por Phil Rob (1548 intervenciones) el 21/12/2021 23:39:43
Hola Miguel,
Respondía Solamente sobre el mensaje del error.
NCapas o no, no puedes tener dos nombres diferentes para el mismo campo.
Es Obras.Fecha o Obras.FechaMensual. No puede ser uno en la clase y otro en otro lugar.
...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 344
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

no existe este campo "Fecha" y la clase "Obras"

Publicado por Miguel (281 intervenciones) el 22/12/2021 19:20:58
Phil el nombre fecha era para el ejemplo. El campo donde se produce el error es txtFechaMensual.text y cuando se hace referencia a eObras.FechaMensual nos estamos refiriendo a la clase Obras junto con el campo que está en la base de datos con ese nombre.

El tema es más complejo para explicar pues para eso tienes que verte toda la filosofía que hay sobre nCapas.

Phil te deseo una muy buenas Navidades bien vivas solo como con familia.

Un saludo Phil
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

no existe este campo "Fecha" y la clase "Obras"

Publicado por Phil Rob (1548 intervenciones) el 22/12/2021 20:11:35
Muy bien Miguel.

Este es muy difícil para mí de ver la escritura de la clase :

Public Class Obras
Public Property IdObra as Int16
Public Property Fecha As Date
End Class


Y después, de ver el código :

Public Class Obras
'********************* Declaración de variables globales **********************'
Private objObra = New ObrasBL
Private eObra As New Obras ‘ ¿??? eObra = New Obras en la clase Obras ¿????
Private miFecha As Object

Private Sub MuestraDatos(eObra As Obras)
txtIdObra.Text = Convert.ToInt16(eObra.IdObra) ‘ IdObra es bien el campo de la clase Obras
miFecha = ("01/01/1900")
If eObra.FechaMensual = miFecha Then ‘ No FechaMensual es el campo de la clase
txtFechaMensual.Text = miFecha
Else
txtFechaMensual.Text = Convert.ToString(eObra.FechaMensual) ‘ No FechaMensual es el campo de la clase Obras

End If
End sub

Existen dos clases Obras (una en capa Entidad y otra en Presentation) y no sé la cuál es referenciada por Private eObra As New Obras. Si este es la segunda, hay error porqué la clase es instanciada ella misma. Si este la primera, no es bien el nombre del campo eObra.FechaMensual. Supongo que has intentar de reemplazar FechaMensual por Fecha.

Pareces ser bien seguro de tu trabajo y no quiero te hacer perder tiempo.

Felices Navidades a tu casa también, Miguel,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar