Consulta Novato;Forma de enlazar un grid

27/12/2006 - 13:42 por David | Informe spam
Hola, estoy empezando con .Net y la verdad es que después de tantos años
con VB6, me está costando aconstumbrarme.
Mi primer programa consiste en ir capturando incidencias de una web y
guardando los datos en una BBDD de sql server 2000. Hasta allí todo bien.
A esos datos tienen que acceder los puestos clientes para ver las
incidencias que recojo de la web, por lo que se necesita que el grid que
está enlazado a la tabla "incidencias" esté en modo conectado, para que
las incidencias salgan en el grid al instante o por lo menos cuando se
haga un refresh.
¿Cual es la mejor forma de hacerlo? Me imagino que si es en modo
conectado habrá que hacerlo con un datareader. Pero ¿y si quiero
modficar los datos?

En resumen, es lo que en VB6 se haría enlazando el TdbGrid a la base de
datos a través del Datasource.


Muchas gracias


David
 

Leer las respuestas

#1 SoftJaén
27/12/2006 - 17:15 | Informe spam
"David" escribió:

Mi primer programa consiste en ir capturando incidencias de una web y
guardando los datos en una BBDD de sql server 2000. Hasta allí todo bien.
A esos datos tienen que acceder los puestos clientes para ver las
incidencias que recojo de la web, por lo que se necesita que el grid que
está enlazado a la tabla "incidencias" esté en modo conectado, para que
las incidencias salgan en el grid al instante o por lo menos cuando se
haga un refresh.
¿Cual es la mejor forma de hacerlo? Me imagino que si es en modo conectado
habrá que hacerlo con un datareader. Pero ¿y si quiero modficar los datos?



Hola, David:

Entiendo que estás utilizando dos aplicaciones distintas: una, la que
captura las incidencias de la web y las guarda en la base de datos, y otra,
las aplicaciones de los equipos cliente que leen las incidencias desde la
base de datos de SQL Server.

En cuanto a la primera aplicación, parece ser que va bien según nos
comentas, porque todo consiste en insertar nuevos registros conforme surgan
las incidencias. Y referente a la segunda aplicación, si los datos los
muestras en un control tipo Grid, entonces se supone que estás utilizando un
objeto DataSet, por lo que la aplicación cliente deberá de actualizar cada x
tiempo el objeto DataSet, para que los nuevos registros aparezcan en el
Grid.

Para actualizar el DataSet, lo mismo hasta te viene bien el siguiente
procedimiento:

Private Sub UpdateSqlClient(ByVal ds As DataSet, _
ByVal cnnString As String, _
ByVal sql As String, _
ByVal tableName As String)

' Creamos un objeto SqlConnection
Dim cnn As New SqlConnection(cnnString)

Try
' Abrimos la conexión
cnn.Open()

' Creamos un adaptador de datos
Dim da As New SqlDataAdapter(sql, cnn)

' Rellenamos el objeto DataSet
da.Fill(ds, tableName)

' Actualizamos el objeto DataSet
da.Update(ds, tableName)

Catch ex As Exception
MessageBox.Show(ex.Message, "Actualizar Datos")

Finally
' Cerramos la conexión
cnn.Close()
cnn = Nothing

End Try

End Sub

Por ejemplo, al procedimiento lo llamarías de la siguiente manera:

UpdateSqlClient(objetoDataSet, _
cadenaConexionSqlServer, _
"SELECT * FROM Incidencias", _
"Incidencias")

Un saludo y ¡Feliz Año Nuevo!

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares