Problema con dataset

11/08/2004 - 17:41 por Patricio Campos | Informe spam
Estoy creando un formulario en ASP.Net para ingresar datos a una base de
datos SQL Server 2000, y tengo el siguiente problema usando ADO.Net y Visual
Studio .Net 2003:

El formulario tiene dos botones. Al presionar el primero se llena un data
set (creado en el diseñador de webforms) y puedo acceder a las tablas y
filas desde el procedimiento del click del botón sin ningún problema.

Después necesito volver a acceder a los datos del dataset llenado pero
cuando presiono otro botón del formulario y aquí es donde tengo el problema.
Cuando intento acceder a los datos del dataset desde el procedimiento click
de este segundo boton no hay ninguna fila guardada, como si el dataset nunca
hubiese sido llenado en circunstancia que ya lo llené cuando presioné el
primer botón.

¿Por qué ocurre esto? Si alguien puede darme una orientación le agradecería
mucho!!!!

El código es el siguiente

Private Sub btnUNO_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnActualizar.Click

' verificar que se ha ingresado algún valor al cuadro de texto usuario

Try

SqlConexion.Open()

Catch ex As Exception

lblAdvertencia.Text = "No se puede abrir la base de datos. " + ex.Message

Exit Sub

End Try

' consulta a la base de datos

SqlDataAdapterUsuario = New Data.SqlClient.SqlDataAdapter("SELECT * FROM
Usuario WHERE Usuario = '" & txtUsuario.Text & "'", SqlConexion)

Try

SqlDataAdapterUsuario.Fill(ConjuntoDatos, "Usuario")

Catch ex As Exception

lblAdvertencia.Text = "No se ejecutar la consulta: " + ex.Message

Exit Sub

End Try

lblAdvertencia.Text = ConjuntoDatos.Tables("Usuario").Rows.Count --> Me
aparece 10

End Sub





Private Sub btnGuardarCambios_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnGuardarCambios.Click

lblAdvertencia.Text = ConjuntoDatos.Tables("Usuario").Rows.Count --> Me
aparece 0

End Sub
 

Leer las respuestas

#1 A.Poblacion
11/08/2004 - 19:52 | Informe spam
Cuando trabajas con ASP.NET las páginas no guardan estado. Esto quiere decir
que toda la información que tengas guardada en variables de la clase
(incluido tu dataset) se pierde cada vez que pulsas cualquier botón en la
página. El remedio es reconstruir el dataset en el evento page_load, que se
ejecuta siempre antes que el evento click de cualquier botón, con lo cual en
el click del botón volverás a tener los datos del dataset. Otra alternativa
es utilizar algún mecanismo para conservar el estado, por ejemplo, guardar
el dataset dentro del Session o el ViewState.

"Patricio Campos" wrote in message
news:
Estoy creando un formulario en ASP.Net para ingresar datos a una base de
datos SQL Server 2000, y tengo el siguiente problema usando ADO.Net y


Visual
Studio .Net 2003:

El formulario tiene dos botones. Al presionar el primero se llena un data
set (creado en el diseñador de webforms) y puedo acceder a las tablas y
filas desde el procedimiento del click del botón sin ningún problema.

Después necesito volver a acceder a los datos del dataset llenado pero
cuando presiono otro botón del formulario y aquí es donde tengo el


problema.
Cuando intento acceder a los datos del dataset desde el procedimiento


click
de este segundo boton no hay ninguna fila guardada, como si el dataset


nunca
hubiese sido llenado en circunstancia que ya lo llené cuando presioné el
primer botón.

¿Por qué ocurre esto? Si alguien puede darme una orientación le


agradecería
mucho!!!!

El código es el siguiente

Private Sub btnUNO_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnActualizar.Click

' verificar que se ha ingresado algún valor al cuadro de texto usuario

Try

SqlConexion.Open()

Catch ex As Exception

lblAdvertencia.Text = "No se puede abrir la base de datos. " + ex.Message

Exit Sub

End Try

' consulta a la base de datos

SqlDataAdapterUsuario = New Data.SqlClient.SqlDataAdapter("SELECT * FROM
Usuario WHERE Usuario = '" & txtUsuario.Text & "'", SqlConexion)

Try

SqlDataAdapterUsuario.Fill(ConjuntoDatos, "Usuario")

Catch ex As Exception

lblAdvertencia.Text = "No se ejecutar la consulta: " + ex.Message

Exit Sub

End Try

lblAdvertencia.Text = ConjuntoDatos.Tables("Usuario").Rows.Count -->


Me
aparece 10

End Sub





Private Sub btnGuardarCambios_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnGuardarCambios.Click

lblAdvertencia.Text = ConjuntoDatos.Tables("Usuario").Rows.Count -->


Me
aparece 0

End Sub



Preguntas similares