ASP.NET - COMO MANTENER UNA VARIABLE

 
Vista:
sin imagen de perfil

COMO MANTENER UNA VARIABLE

Publicado por ANTONIO (106 intervenciones) el 20/02/2010 17:49:10
Hola amigos sacadme de dudas suponed un boton que al pulsarlo te lleva a otro formulario con una variable
Response.Redirect("formulario.aspx?USUCHIP=" & TextBox1.Text)

Es decir nos lleva al formulario.aspx y lleva la variable usuchip con el valor del campo textbox1.text

correcto hasta ahi

Entonces se supone que abre el formulario.aspx y en el vento page_init lo que hago es hacer una consulta sql en base al valor de la variable usuchip

Dim SSEL As String = "Select * from nombre WHERE dni ='" & request.querystring("usuchip").tostring & "'"

Y funciona bien es decir me busca en la base de datos el dni que coincida con el valor del parametro usuchip que hemos traido del otro formulario.

Pero aqui viene la duda, si hago un postback o cualquier otra operacion que me actualice esta pagina entonces me da error ya que request.querystring("usuchip").tostring no vale para nada y el valor que da es nulo o blanco.

Por eso pregunto que tipo de variable que no sea session ni cookie que me mantenga el valor de la variable que he traido desde otro formulario?

No vale almacenar el valor en un campo de texto.

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
Imágen de perfil de roger

RE:COMO MANTENER UNA VARIABLE

Publicado por roger (311 intervenciones) el 20/02/2010 18:51:37
el valor del query string no se tiene porque perder, deberias revisar lo que esta pasando en tu caso, porque siempre que en la url aparezca la variable (pagina.aspx?variable=valor) el queryString te debe traer el dato que haya, inclusive el usuario puede modificar dicho valor y hacer la solicitud de la pagina, razon por la cual se desaconseja el uso del queryString en ciertos escenarios, por ejemplo el de bases de datos que planteas, por el peligro de inyeccion de sql.

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
sin imagen de perfil

RE:COMO MANTENER UNA VARIABLE

Publicado por ANTONIO (106 intervenciones) el 20/02/2010 18:58:30
Gracias por la pronta respuesta roger, en caso de por ejemplo usar

session("usuchip")="hola"
session("nom")="Pablo"

Usando las variables de session y no muchas dos o tres como mucho para cargar datos como los de arriba, ¿eso sobrecarga el servidor?, ¿Es aconsejable?, es que tengo la duda porque cuando hablan de session dicen que se carga toda la session en fin no entiendo eso
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
Imágen de perfil de roger

RE:COMO MANTENER UNA VARIABLE

Publicado por roger (311 intervenciones) el 21/02/2010 14:36:07
no, el servidor no se sobrecargaria, pues en tu caso inclusive son variables tipo string, cuando en sesion se puede almacenar hasta objetos complejos como datasets por ejemplo. La idea es no abusar de las variables de sesion creandolas en exceso en casos en los que en realidad no son necesarias, pero en el caso que planteas no hay problema.
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
sin imagen de perfil

RE:COMO MANTENER UNA VARIABLE

Publicado por ANTONIO (106 intervenciones) el 21/02/2010 14:49:34
Muchas gracias por las respuestas roger eres una máquina.
Una última pregunta en relación a las variables session

Por ejemplo si abro una misma aplicacion dos veces desde mi ordenador teniendo esa aplicacion variables de session y una de las dos ventanas del explorador la cierro con el codigo session.clear session.abandon entonces la otra ventana al hacer algo tambien se cierra como si le eliminara las variables.

Eso ocurre cuando lo hago desde el mismo ordenador con el mismo explorador web.

Pero.. ¿Supongo que eso no ocurriará si lo hago desde diferentes ordenadores?, ¿no se mezclaran las variables verdad?

Saludos y gracias ya no te molesto mas es que me hace falta aprender esto.
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 roger

RE:COMO MANTENER UNA VARIABLE

Publicado por roger (311 intervenciones) el 22/02/2010 00:48:54
La sesion esta delimitada por la ventana del explorador web, los tabs que abras en una misma ventana comparten las variables de sesion. Si abres otra ventana aparte (no otro tab), las variables de sesion seran distintas aunque te encuentres en el mismo ordenador, entonces no se mezclan unas con otras.

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:COMO MANTENER UNA VARIABLE

Publicado por Khristian (335 intervenciones) el 23/02/2010 00:34:17
Lo de usar variables de session no es recomendable por carga del servidor.

Te recomiendo esto...

Usa un control HiddenField, que llamaremos hfDato

en el page load solo haces esto

if not page.ispostback then
.....hfDato.value=request.querystring("miDato")
endif

Despues usas el hfDato como parametro para los datasources o lo que quieras.

Saludos

http://khristian-net.blogspot.com/
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
sin imagen de perfil

RE:COMO MANTENER UNA VARIABLE

Publicado por ANTONIO (106 intervenciones) el 24/02/2010 09:52:47
Bueno gracias por vuestras respuestas, como dijo Roger voy a usar como mucho 4 o 5 variables session las cuales contienen strings tipo session("nombre")="pepe" y cosas así con poco texto.

Bueno aprovechando que me habeis contestado y estais entre las personas veraces y fiables de esta zona de consultas os planteo ya que no me contestaron en anteriores comentarios lo siguiente:

El mes que viene 1000 personas van a inscribirse en una prueba deportiva delimitada para 700 personas, es decir 300 personas se van a quedar fuera por lo que sabiendo todas a la hora en que se abren las inscripciones van a entrar a saco a inscribirse.
El proceso de inscrpcion es sencillo es decir rellenan un formulario y con ado.net desconectado se inscriben "Ojo" en una base de datos access.mdb , repito base de datos access.mdb, una vez se inscriben pasan a un pago TPV y cuando han pagado "OK" en la misma base de datos que se han inscrito lo buscan y les mete el codigo de pago.

Bueno esto en inscripciones normales no hay problema ya que la gente se inscribe tranquilamente, pero cuando se trata de no quedarse fuera van a entrar todos a saco.
Pregunta: ¿Soportará la base de datos access a tanta gente intentando inscribirse a la vez?, ¿me consumirá todos los recursos y se me pondrá el servidor unavailable?.
Tratandose de access.mdb y no de mysql o sql server en caso de fracasar se os ocurre alguna estrategia?.

Saludos y muchas gracias por vuestros
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:COMO MANTENER UNA VARIABLE

Publicado por Ivan (3 intervenciones) el 08/11/2010 19:44:20
Las variables de sesion si son compartidas aunque se encuentren en distintas paginas o tabs del mismo browser, solo no son compartidas si utilizamos otro diferente browser ejm. IE y Mozzilla.
Tengo un problema parecido. Lo q deseo es almacenar el ID de sesion del usuario logueado. Ya q si abro otra pagina y me logue con otro usuario, el ID de sesion se cambia por el nuevo,,, y no puedo mantener mi variable de sesion,... alguien sabra dar solucion a esto????
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