Foros del Web » Programación para mayores de 30 ;) » .NET »

consulta

Estas en el tema de consulta en el foro de .NET en Foros del Web. como puedo traerme un campo de tipo integer de la base de datos sumarle + 1 y luego guardar el resultado de la suma en ...
  #1 (permalink)  
Antiguo 30/03/2005, 14:55
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
consulta

como puedo traerme un campo de tipo integer de la base de datos sumarle + 1
y luego guardar el resultado de la suma en le mismo campo
  #2 (permalink)  
Antiguo 30/03/2005, 15:03
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Por lo menos ami se me ocurrio asi
Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)
MyCommand.Connection.Open()
Dim dr As sqldatareader

dr = mycommand.executereader

While dr.read)

If RadioButton1.Checked = true then
Add.tostring(dr("Respuesta1" +1)

Else If RadioButton2.Checked = true then
Add.tostring(dr("Respuesta2" +1))
Else If RadioButton3.Checked = true then
Add.tostring(dr("Respuesta3" +1))
Else If RadioButton4.Checked = true then
Add.tostring(dr("Respuesta4" +1))
Else If RadioButton5.Checked = true then
Add.tostring(dr("Respuesta5" +1))
end if


End Sub

no estoy segura si puedo hacerlo y despues como lo inserto de nuevo
tampoco me lo imagino
  #3 (permalink)  
Antiguo 30/03/2005, 15:07
 
Fecha de Ingreso: diciembre-2004
Mensajes: 130
Antigüedad: 19 años, 4 meses
Puntos: 0
update?

Hola...

Que es lo que intentas hacer, a simple vista me parece que mejor seria que hagas un update tabla set campo=campo+1 where filtro.

Saludos cordiales
__________________
langdotnet
  #4 (permalink)  
Antiguo 30/03/2005, 15:19
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Buena la cosa es dependeiendo del radio button que se selccione yo deberia consultar mi tabla traer el valor respueta1 incrementarlo en 1 y volver a guardarlo en la tabla

La aplicacion es un formulario sencillo que trae de la una tabla informacion

de una pregunta

y 5 opciones que son chekeadas con los radio buton

la ideas poder almacenar cuantas veces se elegio la opcion 1 o la opcion 2 o la opcion5

en fin es un modulo de encuesta

m
  #5 (permalink)  
Antiguo 30/03/2005, 15:31
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hola say.. (que milagro.. jaja )

Puedes obtener el valor de tu reader así:

Cita:
If RadioButton1.Checked = true then
Add.tostring(Ctype(dr("Respuesta1"),Integer) + 1)
..
..
Y en tu evento del radiobuton hacer el update como normalmente lo harías sumandole uno..

Cita:
update Formulario
set Respuesta1 = Respuesta1 + 1
where formulario = 2
Y despues vuelves a cargar tu reader para obtener el nuevo valor.

Checalo y verás que no es difícil..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #6 (permalink)  
Antiguo 30/03/2005, 15:40
 
Fecha de Ingreso: diciembre-2004
Mensajes: 130
Antigüedad: 19 años, 4 meses
Puntos: 0
Entonces creo que seria mucho mejor que cuando presionas el boton guardar encuenta (o como se llame) obtengas el Id(ID_REGISTRO) del registro mostrado en el datagrid y luego llames a un procedimiento almacenado que se encargue de aumentar ese numero en uno...

Create Procedure USP_AUMENTAR_UNO
@ID_REGISTRO int
as
Update MiTable
set campo = campo+1
where ID_REGISTRO = @ID_REGISTRO
go

o realizar la consulta en el mismo codigo, pero teniendo el Id del registro a aumentar en uno.

Saludos cordiales.
__________________
langdotnet
  #7 (permalink)  
Antiguo 30/03/2005, 15:43
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Uhmmm

Dos preguntas
1.- Cuando me hablas del evento del radio buton te refieres al
Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) de cada radio button

2.-Cuando me dices que vuelva a carga el reader puede sr en el page load de la pagina?
  #8 (permalink)  
Antiguo 30/03/2005, 15:47
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
1.- Cuando me hablas del evento del radio buton te refieres al
Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) de cada radio button
Si... aunque puedes manejar un radiobutton list para usar el mismo método y solo estar recorriendo los items...

Cita:
Cuando me dices que vuelva a carga el reader puede sr en el page load de la pagina?
Puedes poner una funcion dentro del evento de tu radio button que llame al reader... o la otra es hacer un redirect a la misma página para volver a cargar los datos.... ya depende de ti... de como te sea más fácil
  #9 (permalink)  
Antiguo 30/03/2005, 16:01
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Me da un error
No se ha declarado el nombre 'Add'.

Add.tostring(Ctype(dr("Respuesta1"),Integer) + 1)

Sub Ok_Click(sender As Object, e As EventArgs)

Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)
MyCommand.Connection.Open()
Dim dr As sqldatareader

dr = mycommand.executereader

While dr.read

If RadioButton1.Checked = true then
Add.tostring(Ctype(dr("Respuesta1"),Integer) + 1)
Else If RadioButton2.Checked = true then
Add.tostring(Ctype(dr("Respuesta2"),Integer) + 1)
Else If RadioButton3.Checked = true then
Add.tostring(Ctype(dr("Respuesta3"),Integer) + 1)
Else If RadioButton4.Checked = true then
Add.tostring(Ctype(dr("Respuesta4"),Integer) + 1)
Else If RadioButton5.Checked = true then
Add.tostring(Ctype(dr("Respuesta5"),Integer) + 1)
end if
End While
dr.close
MyCommand.Connection.Close()

End Sub

Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs)
Dim DS As DataSet
Dim MyCommand As SqlCommand
Dim UpdateCmd As String ="update Formulario set Respuesta1 = Respuesta1 + 1 where formulario = 2"
MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)

MyCommand.Parameters.Add(New SqlParameter("@Respuesta1", SqlDbType.Int, 4))
MyCommand.Connection.Open()

Try
MyCommand.ExecuteNonQuery()
End Try

MyCommand.Connection.Close()
end Sub

Por cierto agregue el update asi , no se si te capte bien la idea
  #10 (permalink)  
Antiguo 31/03/2005, 01:36
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Me parece que no le captaste al idea a rootk

Tienes un update en RadioButton1_CheckedChanged que cambia con una update
aumentando en uno respuesta1.

Lo primero que me planteo es y si el aumento tiene que ser respuesta 2 donde lo cambias en la base de datos???

Yo simplemete lo que haria sin utilizar el add.tostring ese.....

tendria las 5 opciones en un radiobuttonlist (si cada vez solo puede elegir uno)
Si tinees un boton ok que creo q es lo q kieres utilizar
en ses boton dependiendo de cual este clikao hacer la update de esa respuesta:

Dim DS As DataSet
Dim MyCommand As SqlCommand

If RadioButton1.Checked = true then
Dim UpdateCmd As String ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton2.Checked = true then
Dim UpdateCmd As String ="update Formulario set Respuesta2 = "& (Ctype(dr("Respuesta2"),Integer) + 1) & " + 1 where formulario = 2"
Else If RadioButton3.Checked = true then
...
Else If RadioButton4.Checked = true then
...
Else If RadioButton5.Checked = true then
...
end if


Algo asi,teniendo por supuesto que hacer la consulta como haces al principio

El whlie dr.read tiene sentido ponerlo?? entiendo q solo te devolvela un registro la consulta "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"

  #11 (permalink)  
Antiguo 31/03/2005, 07:29
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Pues ahora no da error, pero no actualiza el mas 1 en la tabla de datos
mira respuesta1,respuesta2,respuesta3,respuesta4,respue sta5 tienen en la base de datos el valor cero

se supone que cuando se seleccione el radiobutton consulta la tabla tome el valor de respuesta1 le sume 1 y lo guarde de nuevo

Sub Ok_Click(sender As Object, e As EventArgs)

Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)
MyCommand.Connection.Open()
Dim dr As sqldatareader

dr = mycommand.executereader

If RadioButton1.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton2.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta2 = "& (Ctype(dr("Respuesta2"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton3.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta3 = "& (Ctype(dr("Respuesta3"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton4.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta4 = "& (Ctype(dr("Respuesta4"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton5.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta5 = "& (Ctype(dr("Respuesta5"),Integer) + 1) & " + 1 where formulario = 2"

end if

dr.close

MyCommand.Connection.Close()

End Sub

Todo eso debe hacer cuando se presione le boton ok
  #12 (permalink)  
Antiguo 31/03/2005, 07:46
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
HAz pruebas de tu codigo haber donde puede estar el fallo

Pon un label de pruebas

En los if del boton ok por ejemplo pones q le asignen al label el valor de (Ctype(dr("Respuesta1"),Integer) haber si te devuelve lo que esperabas que deberia ser en primer termino el 0

Si te devuleve bien es q hasta aki todo esta bien y q no ahces bien la update

¿donde tienes el executenonquery ???
Creo q el problema esta ahi,q no ejecutas la update,solo la asignas a un string
  #13 (permalink)  
Antiguo 31/03/2005, 08:06
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
No lo hago alli lo termino en el evento del radio button

asi

Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs)
Dim DS As DataSet
Dim MyCommand As SqlCommand
Dim UpdateCmd As String ="update Formulario set Respuesta1 = @Respuesta1 + 1 where formulario = 2"
MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)

MyCommand.Parameters.Add(New SqlParameter("@Respuesta1", SqlDbType.Int, 4))
MyCommand.Connection.Open()

Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try

MyCommand.Connection.Close()
end Sub

Ay creo que volvi a entender mal, perdon es que capto lento no te moleste por favor

y gracias de antemano
  #14 (permalink)  
Antiguo 31/03/2005, 08:19
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Jajaja,tus temas son como bolas de nieve q cada vez cuesta mas seguir por q se van agrandando....
No pasa nada,es broma

Mira borra el Sub RadioButton1_CheckedChange
No lo necesitas apra nada ya que para algo utilizas el boton ok
Me es lo mismo q los cambios los hagas cuando haga un cambio en el radio buton directamente o q tenga q teclear el boton ok por si acaso se confunde al clikar un radio buton.................................

La cosa es q al codigo del ok le falta esto al final:
MyCommand = New SqlCommand(UpdateCmd, Por talSettings.SqlConnectionString)
Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try

MyCommand.Connection.Close()

Es decir q entras en los if,metes en e lstring el update q seria segun entre en una if o otra y te falta hacer esa update en la bd,por eso nunca te hara ningun cambio

Si en cambio kerrias q te lo hicienra en el evento radiobutton_changed
copiarias el codigo del boton ok ahi

Me sigues???
  #15 (permalink)  
Antiguo 31/03/2005, 08:29
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
pues creo que te sigo

agrego en cada if bloque que falta, algo asi

Sub Ok_Click(sender As Object, e As EventArgs)

Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)
MyCommand.Connection.Open()
Dim dr As sqldatareader

dr = mycommand.executereader

If RadioButton1.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " + 1 where formulario = 2"
MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)
Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try

MyCommand.Connection.Close()

Else If RadioButton2.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta2 = "& (Ctype(dr("Respuesta2"),Integer) + 1) & " + 1 where formulario = 2"
...
Else If RadioButton3.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta3 = "& (Ctype(dr("Respuesta3"),Integer) + 1) & " + 1 where formulario = 2"
...
Else If RadioButton4.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta4 = "& (Ctype(dr("Respuesta4"),Integer) + 1) & " + 1 where formulario = 2"
....
Else If RadioButton5.Checked = true then

Dim UpdateCmd As String ="update Formulario set Respuesta5 = "& (Ctype(dr("Respuesta5"),Integer) + 1) & " + 1 where formulario = 2"
...
end if

dr.close

MyCommand.Connection.Close()

End Sub

pero no le faltaria la linea

MyCommand.Parameters.Add(New SqlParameter("@Respuesta1", SqlDbType.Int, 4))

bueno que no seria @respuesta1 por que eso no estoy definiendo
  #16 (permalink)  
Antiguo 31/03/2005, 08:42
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Nohace falta esa linea por q no tienes q definir ningun valor,lo has hecho directamente en la cadena

Ej:
"Select * from tabla where p=@p"
Aki tendrias q definir @p
"Select * fr0m tabla where p=" & ctyep(dr("respuesta1"),integer)
Aki no

Para ahorra codigo con ponerlo una vez al final valdria
Ya q segun entiendo utilizas radiobutons por q solo elegira una respuesta
declara el Dim UpdateCmd As String al principio,antes del primer if,luego simplemtente hace sla asignacion al UpdateCmd en cada if
y entendiendo q solo entrara en uno de ellos UpdateCmd tendra elvalor de una update,despues del utlimo end if haces la executenomquery...

Puedes tb hacer como dices pero es repetir mucho codigo
  #17 (permalink)  
Antiguo 31/03/2005, 09:02
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Pues te cuento que hizo como me indicaste, o al menos eso creo yo.

Pero no funciona no setea el nuevo valor

en la tabla continua estando el valor cero

Entonces coloque un label antes del updatecdm
para ver si me trae el valor como me explicaste en post pasado

pero me da este error
Un valor de tipo 'Integer' no se puede convertir en '2'.
y resalta esta linea Label22 = (Ctype(dr("Respuesta1"),Integer)


El codigo del boton quedo asi

Sub Ok_Click(sender As Object, e As EventArgs)

Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)
MyCommand.Connection.Open()
Dim dr As sqldatareader

dr = mycommand.executereader

Dim UpdateCmd As String

If RadioButton1.Checked = true then
Label22 = (Ctype(dr("Respuesta1"),Integer)

UpdateCmd ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton2.Checked = true then

UpdateCmd ="update Formulario set Respuesta2 = "& (Ctype(dr("Respuesta2"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton3.Checked = true then

UpdateCmd ="update Formulario set Respuesta3 = "& (Ctype(dr("Respuesta3"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton4.Checked = true then

UpdateCmd ="update Formulario set Respuesta4 = "& (Ctype(dr("Respuesta4"),Integer) + 1) & " + 1 where formulario = 2"

Else If RadioButton5.Checked = true then

UpdateCmd ="update Formulario set Respuesta5 = "& (Ctype(dr("Respuesta5"),Integer) + 1) & " + 1 where formulario = 2"

end if

MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)

Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try

MyCommand.Connection.Close()
dr.close

MyCommand.Connection.Close()

End Sub
  #18 (permalink)  
Antiguo 31/03/2005, 09:17
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
No veo donde esta el fallo en la update

Lo del label22 teines q indicarle a q del label22 le asignas eso;
label22.text=.....

Por otro lado aunq esto da un poco igual cierras 2 veces mycommand al final

Prueba haber q valor coge label22 y me dices

Otra cosa,le estas sumando 2 veces 1 es decir q le aumentas en 2,pero lo primero es q aumente luego ya miraras esto
  #19 (permalink)  
Antiguo 31/03/2005, 09:41
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
No me muestra nada, cuando hago el label, en la rutina if del botton

asi que se me ocurrio ponerlo en el evento del radiobutton y
me dijo

Invalid attempt to read when no data is present.
Label22.Text = (Ctype(dr("Respuesta1"),Integer))

que te parece?
  #20 (permalink)  
Antiguo 31/03/2005, 09:48
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 8 meses
Puntos: 1
proba asi
while dr.read
Label22.Text =dr("Respuesta1").tostring
end while

fucniona una maravilla
  #21 (permalink)  
Antiguo 31/03/2005, 09:55
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
podria funcionar,no utilizo datareader ,no lo se,,es q segun parece no te entra en ningun if del boton ok,y no termino de ver por q?? por q lo unico q haces es si esta chekeado entra y se supone q uno por lo menos debe estar chekeado.....
Puedes poner el while de prueba aunq solo tengas un registro en el dr
Yo suelo utilizar dataset siempre
  #22 (permalink)  
Antiguo 31/03/2005, 10:03
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Si lo trae, me trae el valor zero pero si te cuento porque no nos funcionaba antes, eres capaz de viajar hasta donde estoy yo solo para darme un golpe en la cabeza

Nunca active el evento onclick del boton, por eso no ejecutaba nada

Perdon yo que estuvo muy mal echo.

Pero ahora que si entra en esa rutina y que sabemos que si no esta trayendo el valor, pues se genero otro error que es este

Invalid attempt to read when no data is present.
y resalta la linea
Line 84: UpdateCmd ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " where formulario = 2"


el codijo del boton quedo asi

Sub Ok_Click(sender As Object, e As EventArgs)

Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)
MyCommand.Connection.Open()
Dim dr As sqldatareader

dr = mycommand.executereader

Dim UpdateCmd As String

If RadioButton1.Checked = true then

UpdateCmd ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " where formulario = 2"

Else If RadioButton2.Checked = true then

UpdateCmd ="update Formulario set Respuesta2 = "& (Ctype(dr("Respuesta2"),Integer) + 1) & " where formulario = 2"

Else If RadioButton3.Checked = true then

UpdateCmd ="update Formulario set Respuesta3 = "& (Ctype(dr("Respuesta3"),Integer) + 1) & " where formulario = 2"

Else If RadioButton4.Checked = true then

UpdateCmd ="update Formulario set Respuesta4 = "& (Ctype(dr("Respuesta4"),Integer) + 1) & " where formulario = 2"

Else If RadioButton5.Checked = true then

UpdateCmd ="update Formulario set Respuesta5 = "& (Ctype(dr("Respuesta5"),Integer) + 1) & " where formulario = 2"

end if

MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)

Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try
dr.close

MyCommand.Connection.Close()

End Sub

Con el evento del radio button es que puedo saber que recupera el valor y lo puse autopostback para que me mostrara el dato

Gracias popopo por la asistencia
Gracias a ti tambien Neivan por la paciencia (Y perdon o tra vez )
  #23 (permalink)  
Antiguo 31/03/2005, 10:17
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Pues te cuento que si lo pongo entre while dr.read

me sale este error

ExecuteNonQuery requires an open and available Connection. The connection's current state is Closed.

resalta esta linea Line 109:MyCommand.ExecuteNonQuery()

pero yo abro la conexion antes

dr = mycommand.executereader

MyCommand.Connection.Open()
dr = mycommand.executereader

While dr.read

Dim UpdateCmd As String

If RadioButton1.Checked = true then

UpdateCmd ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " where formulario = 2"

else if
...

end if

MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)

Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try
end while
dr.close

MyCommand.Connection.Close()

End Sub

eso me parece extraño, a caso no es asi que se abre la conexxion?
  #24 (permalink)  
Antiguo 31/03/2005, 10:24
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 8 meses
Puntos: 1
primero abri la conexion depues executas el reader y despues el whi le
  #25 (permalink)  
Antiguo 31/03/2005, 12:03
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Pues asi lo hice y nada

Sub Ok_Click(sender As Object, e As EventArgs)

Dim MyCommand As SqlCommand
Dim SelectCmd As String = "Select Respuesta1, Respuesta2, Respuesta3, Respuesta4, Respuesta5 from Formulario where FormularioID=2"
MyCommand = New SqlCommand(SelectCmd, PortalSettings.SqlConnectionString)

Dim dr As sqldatareader
MyCommand.Connection.Open()
dr = mycommand.executereader

While dr.read

Dim UpdateCmd As String

If RadioButton1.Checked = true then

UpdateCmd ="update Formulario set Respuesta1 = "& (Ctype(dr("Respuesta1"),Integer) + 1) & " where formulario = 2"

Else If RadioButton2.Checked = true then

UpdateCmd ="update Formulario set Respuesta2 = "& (Ctype(dr("Respuesta2"),Integer) + 1) & " where formulario = 2"

Else If RadioButton3.Checked = true then

UpdateCmd ="update Formulario set Respuesta3 = "& (Ctype(dr("Respuesta3"),Integer) + 1) & " where formulario = 2"

Else If RadioButton4.Checked = true then

UpdateCmd ="update Formulario set Respuesta4 = "& (Ctype(dr("Respuesta4"),Integer) + 1) & " where formulario = 2"

Else If RadioButton5.Checked = true then

UpdateCmd ="update Formulario set Respuesta5 = "& (Ctype(dr("Respuesta5"),Integer) + 1) & " where formulario = 2"

end if

MyCommand = New SqlCommand(UpdateCmd, PortalSettings.SqlConnectionString)

Try
MyCommand.ExecuteNonQuery()
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: A record already exists with the same primary key"
Else
Message.InnerHtml = "ERROR: El registro no puede crearse, por favor revise los campos para ver si fueron rellenados correctamente" & Exp.Message
End If
Message.Style("color") = "red"
End Try
end while
dr.close

MyCommand.Connection.Close()

End Sub
  #26 (permalink)  
Antiguo 31/03/2005, 12:09
 
Fecha de Ingreso: septiembre-2004
Mensajes: 407
Antigüedad: 19 años, 8 meses
Puntos: 1
proba asi despues de que hagas el cm.executenonquery y leas el dr cerrala
con cm.connection.close
y cunado lo ejecutes de nuevo volvela a abrir
  #27 (permalink)  
Antiguo 31/03/2005, 12:53
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
jejeje,donde estas q voy....

El identificador de la select es formularioid
En la update en la where tiene formulario a secas
  #28 (permalink)  
Antiguo 31/03/2005, 13:15
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 19 años, 4 meses
Puntos: 1
Chicos un mega saludo para todos y un millon de gracias por la ayuda

ya funciona

Gracias
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 12:11.