Visual Basic.NET - Problema raro en DATASET!!!!!!!!!!

 
Vista:

Problema raro en DATASET!!!!!!!!!!

Publicado por Sandra E (3 intervenciones) el 23/03/2005 14:35:04
Hola a todos
Tengo un probleema raro en el data set.
tengo una tabla que tiene solo 19 filas y cuando cargo al dataset, estan las 19 filas los veo por que lo enlazo a un datagrid (solo de prueba), el problema radica que cuando cuando coloco la siguiente lines de codigo:

n = Me.dsModifica.Tables("Permisos del Admin").Rows.Count

sale que n=114 cosa que no es cierto solo deberia de ser 19
No se donde radica el problema: sin embargo les envio codigo con el que cargo el dataset:
ci=parametro
id_admin parametro
q = "select * from PERMISOS_ADMIN WHERE CI_ADMIN ='" & Ci & "' AND ID_ENCARGADO= '" & Id_Admin & "'"
daPermisos = New OleDbDataAdapter(q, cnn)
daPermisos.FillSchema(dsModifica, hemaType.Source, "Permisos del Admin")
daPermisos.Fill(Me.dsModifica, "Permisos del Admin")

los datos solo los debo modificar algunos campos no elimino y agrego ninguna fila.
como les dije ante solo tiene 19 filas pero cuando en dataset me parece que se aumentaran el número de filas a 114, y no se de donde sale eso por que cuando lo enlazo a un DATAGRID solo aparecen los 19.

El problema radica cuando quiero editar las filas para realizar los cambios entonces se ejecuta 114 veces y creo que debido a esto no puede actualizar la BD por que me sale el siguiete ERROR!!!

Additional information: La generación SQL dinámica para UpdateCommand no es compatible con SelectCommand, que no devuelve ninguna información sobre columnas clave.

le agradeceriar la ayuda que puedan brindarme
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:Problema raro en DATASET!!!!!!!!!!

Publicado por Sandra E (3 intervenciones) el 23/03/2005 15:06:11
Despues de revisar he comprobado que el al cargarse al dataset ya se carga114 fila es decir se repite 6 veces la informacion existente en la tabla, como dije en la tabla solo existe 19 y debido a este problema no puedo actualizar la base de datos por que me sale ERROR:

Additional information: La generación SQL dinámica para UpdateCommand no es compatible con SelectCommand, que no devuelve ninguna información sobre columnas clave.

por favor envien alguna sugerencia
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

RE:Problema raro en DATASET!!!!!!!!!!

Publicado por Edgar (1501 intervenciones) el 23/03/2005 15:42:11
Hola

En relacion al error que te da, revisa si la consulta resulta de un Join.. ya que si es asi, no se establece ninguna información sobre el campo clave, y tendrías que hacerlo manualmente

En cuanto a lo de que las filas aparecen varias veces.. probablemente sea algo normal, no estoy seguro de eso, pero fijate que tu puedes recuperar las filas originales, las que han sido cambiadas, las filas sin cambios desde la ultima actualización.. etc, posiblemente se esten guardando todas estas filas en dicha colección, y al momento de mostrarlas en el grid solo muestra las filas actuales.. es especulando, pero puede ser lo q sucede..

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

RE:Problema raro en DATASET!!!!!!!!!!

Publicado por Sandra E (3 intervenciones) el 23/03/2005 18:36:40
Hola:
Estuve revisando y encontre el problema de los multiplicacion de filas en el dataset, el problema del la actualizacion persiste, comentarte que no tiene ningun JOIN la cadena de consulta es muy sencilla como sigue:

q = "select * from PERMISOS_ADMIN WHERE CI_ADMIN ='" & Ci & "' AND ID_ENCARGADO= '" & Id_Admin & "'"

y modifico algunos campos del dataset de fila de la tabla del dataset de la siguiente manera:

dsModifica.Tables("Permisos del Adminr").Rows(i).BeginEdit()
'''toma el valor de un checkbox
dsModifica.Tables("Permisos del Admin").Rows(i).Item("ESTADO") = Me.ChkEq_Modificar.Checked

dsModifica.Tables("Permisos del Admin").Rows(i).EndEdit()

codigo para ACTUALIZAR BD:

Dim objCmdBuilder1 As New OleDbCommandBuilder(daPermisos)
daPermisos.Update(Me.dsModifica, "Permisos del Admin")

por favor revisalo el codigo para ver si en algun lado estoy cometiendo el ERROR.
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

RE:Problema raro en DATASET!!!!!!!!!!

Publicado por Edgar (1501 intervenciones) el 23/03/2005 18:44:58
Hola

Bueno.. revisa si el DataTable tiene asignado algo en la propiedad PrimaryKey.. si no esta asignado, colocale la columna que corresponde a la clave.

Te coloco la documentacion sobre esta propiedad por si te es util

http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataDataTableClassPrimaryKeyTopic.asp

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