Principales respuestas
Modulo

Pregunta
-
Tengo este codigo...
Module Variables
Dim p As New EscuelaDatosDataContext()
Dim per = From a In p.ActualPeri
Select a
Public peri As String = per.periodo
Public codperi As Integer = per.codper
End Module
Quiero almacenar los valores de esos campos en sendas variables publicas para tenerlas disponible en cualquier formulario de la aplicacion.
No me da error, pero no hace nada mas, no da resultados, todo normal.
Cuando pongo la variable per y después pongo punto para que salga el intellisence con los campos, pues nada, no me salen, Que hago. Repito no pone andulaciones indicando error, ni mensajes.
Gracias
VS2013
SQLServer 2012
LINQ to SQL
Respuestas
-
Te falta indicar en la Select cuál es el registro cuyas columnas quieres extraer. Si sabes que siempre va a haber uno, puedes hacerlo así:
Dim per = (From a In p.ActualPeri Select a).FirstOrDefault()
Con eso, al teclear "per." el Intellisense ya te debería mostrar las columnas correspondientes.
Para que el código sea más correcto, deberías cerrar el datacontext que tienes en la variable p cuando termines de usarlo. Puedes usar para ello una construcción "Using". Esto no es causa de que no funcione, simplemente sirve para que no se quede abierta la conexión a base de datos.
- Propuesto como respuesta Jose Luque Ballesteros miércoles, 3 de diciembre de 2014 10:14
- Marcado como respuesta Enrique M. MontejoModerator jueves, 4 de diciembre de 2014 8:11
-
Debes especificar el tipo de tu variable per
Dim per As ActualPeri = (From a In p.ActualPeri Select a).FirstOrDefault()
Marco en negrita la modificación.
Te recomiendo actives las opciones de Option Strict y Option Explicit en las propiedades de tu proyecto para evitar estos problemas
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Marcado como respuesta Enrique M. MontejoModerator jueves, 4 de diciembre de 2014 8:11
Todas las respuestas
-
Te falta indicar en la Select cuál es el registro cuyas columnas quieres extraer. Si sabes que siempre va a haber uno, puedes hacerlo así:
Dim per = (From a In p.ActualPeri Select a).FirstOrDefault()
Con eso, al teclear "per." el Intellisense ya te debería mostrar las columnas correspondientes.
Para que el código sea más correcto, deberías cerrar el datacontext que tienes en la variable p cuando termines de usarlo. Puedes usar para ello una construcción "Using". Esto no es causa de que no funcione, simplemente sirve para que no se quede abierta la conexión a base de datos.
- Propuesto como respuesta Jose Luque Ballesteros miércoles, 3 de diciembre de 2014 10:14
- Marcado como respuesta Enrique M. MontejoModerator jueves, 4 de diciembre de 2014 8:11
-
Venga, lo he probado determinado a que iba a funcionar, pero no fue asi.
La tabla tiene y solo tendra un registro.
Por eso no me tome molestias en filtrar registros. De modo que, ahora si que estoy inconcluso con esto.
Module Variables
Dim p As New EscuelaDatosDataContext()
Dim per = (From a In p.ActualPeri Select a).FirstOrDefault()
Public peri As String = per.periodo
Public codperi As Integer = per.codper
End Module
Mi codigo quedo asi, pero no me sale en el intelisense los campos, si que me sale la variable per.
No se si es valido mencionar que este codigo esta en un archivo de modulo aparte.
Gracias.
-
Debes especificar el tipo de tu variable per
Dim per As ActualPeri = (From a In p.ActualPeri Select a).FirstOrDefault()
Marco en negrita la modificación.
Te recomiendo actives las opciones de Option Strict y Option Explicit en las propiedades de tu proyecto para evitar estos problemas
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Marcado como respuesta Enrique M. MontejoModerator jueves, 4 de diciembre de 2014 8:11
-
-
Tengo este modulo aparte llamado "Variables" y su contenido es este...
Module Variables
Public salida As String = "Almacen"End Module
Quiero almacenar el contenido de la variable "salida" en un label, así...
LabelNodo.Text = Variables.salida
o
LabelNodo.Text = salida
De ninguna manera sale.
No se si hay que ejecutar el modulo al iniciar la aplicación. Si es así, tampoco se como, soy prácticamente nuevo en VB.NET
Gracias.
-
-
-
-
-
-
-
-
-
Hice lo recomendado y nada.
No tengo la carpeta bin ni obj.
Ahora pienso en algo que no he hecho, que es esto que me has recomendado "Te recomiendo actives las opciones de Option Strict y Option Explicit en las propiedades de tu proyecto para evitar estos problemas"
Pero no se la ruta.
Gracias
-
selecciona el proyecto botón derecho propiedades. Selecciona pestaña compilar creo que era y establece a On.
pero,creo que ese no es el problema. El intellisense te funciona? Escribes Variables y cuando pones el punto sale algo? Has verificado los namespaces?
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
-
El intelissense funciona bien.
Venga! encontré las opciones pero, tenia la de Explicit activada a On y la de Scrict en Off, active esta ultima y me dio un sin numero de errores "
Option Scrict no permite la conversion implicita de string en integer"
Y asi sucesivamente con otros tipos de datos...