Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Arreglo de Radios en VB.NET

Estas en el tema de Arreglo de Radios en VB.NET en el foro de Visual Basic clásico en Foros del Web. Tengo un cuestionario en VB.NET que consta de un centenar de preguntas Si/No con RadioButtons, y debo guardar los datos en una base de datos. ...
  #1 (permalink)  
Antiguo 04/04/2008, 10:16
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Arreglo de Radios en VB.NET

Tengo un cuestionario en VB.NET que consta de un centenar de preguntas Si/No con RadioButtons, y debo guardar los datos en una base de datos. Ya se como guardarlos, pero para esto necesito unas cuantas lineas de código por cada radio, y modificar cada uno a sus datos es algo largo, tedioso y tiende a muchos errores.

Mi pregunta es si pudiera guardar de alguna forma todos estos botones en un arreglo o algo similar, de tal forma que pudiera guardar los datos de forma simple con un FOR. Agradesco su ayuda.
  #2 (permalink)  
Antiguo 09/04/2008, 09:38
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Exclamación Re: Arreglo de Radios en VB.NET

Parece ser que, o nadie vio mi tema, o nadie pudo contestarlo. Finalmente pude lograrlo, y lo más curioso era que al buscarlo en español en Google, esta pregunta era la primera en mostrarse, y la única en relación. Decido poner a continuación mi solución, en caso que a alguien más pueda servirle en el futuro...

Primero que nada, declaro dos arreglos de tipo botón, uno doble que contendrá las opciones, y uno sencillo que contendrá los nombres donde serán guardados.

Código:
Dim radios(2)() As RadioButton
Dim radNombres() As String
Después, crearemos una función que deberá ser llamada al iniciar el programa, para que se asignen los datos correspondientes a los arreglos:

Código:
Public Function LoadRadios()
	radios(0) = New RadioButton() {radNo1,radNo2,radNo3,radNo4,radNo5}
	radios(1) = New RadioButton() {radSi1,radSi2,radSi3,radSi4,radSi5}
	radNombres = New String() {"preg1", "preg2", "preg3", "preg4", "preg5"}
End Function
De esta forma, tenemos en radios(0) los radios que indican no, en radios(1) los radios que indican si, y en radNombres los nombres de las columnas donde serán guardados. Si en un momento queremos inicializar los datos para que todas comiencen como negativo, lo hacemos de la siguiente manera:

Código:
For i = 0 To radios(0).Length - 1
	radios(0)(i).Checked = True
Next
A la hora de guardar nuestros datos, primero insertamos los datos fijos, tales como id del cuestionario, nombre del encuestado, edad, etc. Una vez guardados, pasamos a actualizar la fila con el arreglo de radios de la siguiente forma:

Código:
For i = 0 To radNombres.Length - 1
	Dim val = 0
	If (radios(1)(i).Checked) Then
		val = 1
	End If
	sqlCmd = New SqlCommand("UPDATE tblCuestionario SET " & radNombres(i) & "=" & val & " WHERE id like '" & id & "'", sqlCnx)
	sqlCmd.ExecuteNonQuery()
Next
Donde tblCuestionario es donde se va a guardar, las columnas de radNombres están guardadas como datos de bit, y id son la variable que tiene nuesto identificador, y su correspondiente columna en la tabla. De esta forma ya habremos guardado nuestros datos.

Por último, para cargar estos datos de vuelta a la ventana, lo hacemos con este código:

Código:
Dim i As Integer
For i = 0 To radNombres.Length - 1
	sqlCmd = New SqlCommand("SELECT " & radNombres(i) & " FROM tblCuestionario WHERE id like '" & id & "'", sqlCnx)
	Dim radyn = sqlCmd.ExecuteScalar
	If radyn Then
		radios(1)(i).Checked = True
	Else
		radios(0)(i).Checked = True
	End If
Next
Se que muchos de ustedes preguntarán ¿Para que hacerlo de esta forma por cinco opciones de radio? Les recuerdo que este ha sido solo un ejemplo, en mi caso fueron más de 50, y se que a muchos más les sucederá algo similar.

Espero mi pequeño logro sea de ayuda a alguien más. Suerte a todos con sus códigos.

-daPhyre-
  #3 (permalink)  
Antiguo 05/06/2008, 10:06
 
Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Arreglo de Radios en VB.NET

Hola
Sera que me puedes contactar necesito que me colabores a realizar un cuestionario como este.
correo [email protected]
  #4 (permalink)  
Antiguo 05/06/2008, 10:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Arreglo de Radios en VB.NET

Cita:
Iniciado por lady_ljar Ver Mensaje
Hola
Sera que me puedes contactar necesito que me colabores a realizar un cuestionario como este.
correo [email protected]
Estimado lady_ljar. Solicitar información por correo electrónico está en contra de las http://www.forosdelweb.com/f40/polit...el-web-101485/.
Cita:
Iniciado por Admin
2.3 Los usuarios no pueden publicar mensajes para insinuar o instruir a otro(s) miembro(s) para que revisen su cuenta de correo electrónico, su buzón de mensajes privados, o para indicarles de alguna manera que tienen un nuevo mensaje privado o de correo electrónico, con el objeto de solicitar u ofrecer una respuesta con respecto al tema en cuestión. Tampoco está permitido enviar publicidad u ofertas de servicios no solicitados a través de mensajes privados y/o correo electrónico a otros usuarios de Foros del Web.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 05/06/2008, 10:46
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Arreglo de Radios en VB.NET

Cita:
Iniciado por lady_ljar Ver Mensaje
Hola
Sera que me puedes contactar necesito que me colabores a realizar un cuestionario como este.
Deja aquí tus dudas y podré ayudarte. No creo que sea tan dificil lo que necesites, y podría ayudar a alguien más tambien en el futuro.
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.