Visual Basic.NET - DataGridView, NO ME DEJA MODIFICAR DATOS

 
Vista:

DataGridView, NO ME DEJA MODIFICAR DATOS

Publicado por Richard P. (16 intervenciones) el 17/08/2007 20:37:18
Hola, tengo un datagridview enlazado a una tabla de dataset, quiero modificar los datos e ingresar datos en filas nuevas.

Me muestra los datos pero no me deja modificarlos ni ingresar nuevas filas.

gracias al que me eche una mano

Richard, Caracas, Venezuela
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

RE:DataGridView, NO ME DEJA MODIFICAR DATOS

Publicado por OliBeer (391 intervenciones) el 17/08/2007 22:15:57
Supongo que el Dataset con el que cargas el Grid es resultado de una consulta Sql no? Una vez yo tube un problema similiar y era que despues de cargar un Grid, tenia que agregarle registros o quitarselos cual fuera el caso, pero al Grid, no a la tabla en la que tenia los datos, entonces hice algo como esto:

Tienes que trasladar el dataset a un viewstate asigar el viewstate al grid y después para hacer modificaciones a la estructura de datos, pasar el viewstate a un datatable algo asi:

dataset-->viewstate-->datatable--(modificaciones)-->viewstate-->grid

el dataset se olvida por completo...

cuando pasas el dataset a un viewstate, la estructura de datos queda igual que la del dataset por ejemplo:

Id-Nombre-Direccion

para agregar, ocupamos hacer un fila exactamente igual a esa para poderla agregar y para borrar solo tomamos la posicion de la fila, esta numeracion empieza con el numero 0

Id Nombre Direccion
0 123 Alex bla bla
1 124 Daniel bla bla
2 125 Raul bla bla
.
.
.

Para pasar el Dataset a un View:

ViewState("Nombre") = myDataset.Tables(0)

ViewState("Nombre") no ocupas declararla.

asignas ViewState("Nombre") al grid

ahora para agregarle datos al ViewState("Nombre") lo pasas priemro a un Datatble

myDataTable = ViewState("Nombre")

y agregas una nueva fila

myDataTable.Rows.Add(126, "Hector", "bla bla")

de esta manera estamos agregando una nueva fila a la estructura

después asignas el Datatable al ViewState("Nombre")

ViewState("Nombre") = myDataTable

y vuelves a cargar el grid con el ViewState("Nombre") para que tome los cambios

y de esta manera aparecera el grid con un nuevo registro

ahora para borrar un registro, pasa el ViewState("Nombre") a el Datatable y ahora solo buscar el item para borrarlo

antes tienes que poner esta linea:

myDataTable.AcceptChanges()

en el boton del grid para borrar tienes que sacar el Index de la fila, que en si, es el numero de fila, por ejeplo si quieres borrar Daniel el index sera 1

Id sera la variable donde estara el Index de la fila

Dim a As Integer = 0

For Each row As DataRow In myDataTable.Rows
If a = IdThen
row.Delete()
Exit For
End If
a += 1
Next

depues de borrar, vuelves a hacer todo elprocedimiento para volver a cargar el grid y se vean reflejados los cambios.

ahora para guardar en la DB, solo se guardara lo que hay en el Grid, vuelves a hacer un For Each para recorrer el Grid y vas guardando registro por registro.

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