ASP.NET - SOS!! Variable Shared con usuarios concurrentes

 
Vista:

SOS!! Variable Shared con usuarios concurrentes

Publicado por Laurea (46 intervenciones) el 22/11/2007 09:43:29
Buenos días foreros.
Me pongo en contacto con vosotros para ver si me podríais ayudar. Tengo una aplicación en visual basic .net para web. En una pantalla se van metiendo ciertos datos que se guardan en arrays y en arraylist. El problema me surge cuando se hace un postback en la página, el valor de las variables se pierde. Declarando las variables como protected shared, los valores no se pierden, pero he observado que cuando hay más de un usuario en el mismo formulario, el valor de los arrays y de las variables es del último usuario que ha introducido los datos. ¿Alguien sabe como podria declarar las variables para que esto no me ocurriera? Estoy bastante perdida y desesperada por encontrar la solución y el tema me urge bastante. Os agradecería cualquier tipo de ayuda. Muchos saludos.
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

RE:SOS!! Variable Shared con usuarios concurrentes

Publicado por Javier Santamaria (312 intervenciones) el 22/11/2007 12:06:07
Hola,

Prueba con variables de sesion.

Para dar valor es Session("Nombre de la variable") = valor
Para recuperar valor es variable = Session("Nombre de la variable")

Saludos
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

RE:SOS!! Variable Shared con usuarios concurrentes

Publicado por Laurea (46 intervenciones) el 22/11/2007 13:51:03
Hola Javier.
Muchas gracias por contestar.
Lo de las variables de sesión ya lo estuve mirando, pero es que tengo que meter datos en un array, y me da error porque me dice que a una variable de sesión no puedo asignarle un array. También se da el caso de que en una posición en concreto del array debo introducir un valor. Llegué a probar con las variables de sesión, pero me daba error al intentar asignar el array.
Saludos!!
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

RE:SOS!! Variable Shared con usuarios concurrentes

Publicado por Javier Santamaria (312 intervenciones) el 23/11/2007 11:04:59
Hola,

Pues entonces create el array en las varialbes de sesion. Me explico, en lugar de meter un array como tal puedes crear una variable de sesion por cada componente del array.

Supongamos que tienes un array de colores: dim colores() as string,
pues puedes hacer esto:

Session("Colores0") = colores(0)
Session("Colores1") = colores(1)
Session("Colores2") = colores(2)
Session("Colores3") = colores(3)
...

Saludos
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

RE:SOS!! Variable Shared con usuarios concurrentes

Publicado por Laurea (46 intervenciones) el 29/11/2007 12:39:13
Muchas gracia por tu ayuda.
Al final hemos cambiado el planteamiento y lo vamos a usar haciendo inserciones en la BD.
Muchas gracias.
Saludos
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

RE:SOS!! Variable Shared con usuarios concurrentes

Publicado por Rene Fajardo (1 intervención) el 27/12/2007 13:52:49
La forma para que no se pierda el estado de las variables y estas no se confundan con los valores de otros usuarios es la siguiente, se debe utilizar un viewstate, esto hace que la pagina pese un poco mas, pero es la forma mas segura:
Pudes declarar cualquier tipo de varaible, string, int , dataset...

Private Property Nombre_Variable() As Integer
Get
If (viewstate("Nombre_Variable") = Nothing) Then
Return 0
Else
Return CType(viewstate("Nombre_Variable"), Integer)
End If
End Get
Set(ByVal Value As Integer)
viewstate("Nombre_Variable") = Value
End Set
End Property

Las declaras en la misma parte que declaras las Shared y ya,

espero te sirva
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