NO ME DEJA BORRAR REGISTROS EN SQL SERVER

29/08/2006 - 18:18 por INFORMÁTICA APLICADA | Informe spam
Cuando intento borrar un registro de una tabla en SQL SERVER, me lo borra del
DATASET/DATAADAPTER.
Utilizo el código:

DTSPAI.Tables("MPAISES").Rows.Remove(FILA)
DTAPAI.Update(DTSPAI, "MPAISES")

Donde DTSPAI es el dataset, MPAISES el la tabla en SQL y DTAPAI es el
dataadapter.

Pero si hago una consulta a la base de datos con el analizador de consultas,
el registro sigue estando en la tabla.

Que me falta o que estoy haciendo mal?
INFORMÁTICA APLICADA

Preguntas similare

Leer las respuestas

#1 SoftJaén
29/08/2006 - 19:15 | Informe spam
"INFORMÁTICA APLICADA" escribió:

Cuando intento borrar un registro de una tabla en SQL SERVER, me lo borra
del DATASET/DATAADAPTER.
Utilizo el código:

DTSPAI.Tables("MPAISES").Rows.Remove(FILA)
DTAPAI.Update(DTSPAI, "MPAISES")

Pero si hago una consulta a la base de datos con el analizador de
consultas, el registro sigue estando en la tabla.

Que me falta o que estoy haciendo mal?



Hola:

¿Has configurado debidamente la propiedad «DeleteCommand» del objeto
DataAdapter? ¿Tiene establecida la tabla donde deseas eliminar el registro,
una clave principal?

Si tu contestación es afirmativa, entiendo que no deberías tener problema
alguno para actualizar el origen de datos con el método «Update» del objeto
DataAdapter, pero si el adaptador de datos no sabe lo que tiene que
actualizar, difícilmente podrás eliminar, añadir o modificar registros en la
base de datos de SQL Server.

Para configurar el adaptador de datos, te puede servir un objeto
SqlCommandBuilder, pero previamente, el adaptador de datos necesitará una
consulta SQL de selección.

' Consulta de selección
Dim sql As String = "SELECT * FROM Tabla1"

' Creamos el objeto SqlDataAdapter
Dim DTAPAI As New SqlDataAdapter(sql, objConnection)

' Rellenamos un objeto DataTable
DTAPAI.Fill (DTSPAI, "MPAISES")

' Creamos un objeto CommandBuilder para el adaptador
Dim builder As New SqlCommandBuilder(DTAPAI)

' Generamos los distintos objetos Command
With DTAPAI
.InsertCommand = builder.GetInsertCommand
.DeleteCommand = builder.GetDeleteCommand
.UpdateCommand = builder.GetUpdateCommand
End With

Ya se encuentra configurado el adaptador de datos. Ahora, cuando desees
enviar la actualización a la base de datos, ejecutarías el método «Update»:

DTAPAI.Update(DTSPAI, "MPAISES")

Un saludo

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.
Respuesta Responder a este mensaje
#2 Alberto Poblacion
29/08/2006 - 20:02 | Informe spam
"INFORMÁTICA APLICADA" wrote in message
news:
Cuando intento borrar un registro de una tabla en SQL SERVER, me lo borra
del
DATASET/DATAADAPTER.
Utilizo el código:

DTSPAI.Tables("MPAISES").Rows.Remove(FILA)
DTAPAI.Update(DTSPAI, "MPAISES")
[...]
Que me falta o que estoy haciendo mal?



Hay dos formas de borrar un registro de un datatable: Una es el método
Remove que estás usando, y la otra es el método Delete, que es el que debes
usar.

La razón es que Remove elimina por completo de la tabla el registro, con
lo cual el DataSet pierde todo conocimiento acerca de dicho registro, y por
lo tanto el Update no sabe que debe enviar al servidor una orden de borrado
de dicho registro (que ya no conoce).
En cambio, Delete no elimina el registro, sino que lo deja en el dataset
marcándolo como "borrado", con lo cual, cuando ejecutas el Update, el
dataadapter se da cuenta de que el dataset contiene un registro que se debe
borrar y sí que envía al servidor la orden de borrado.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida