El SqlDataAdapter.Update( ) no funciona para el DeleteCommand( )

27/07/2005 - 17:32 por Antonio Garcia | Informe spam
Hola amigos he construido manualmente mi Command para mi SqlDataAdapter y
funciona muy bien para el Update y el Insert pero para el Delete no
funciona, cuando yo elimino una fila de mi DataTable lo hago mediante
DataTable.Rows.RemoveAt(Fila) ¿será por eso que no funciona?

Mi codigo del DeleteCommand es:

dap.DeleteCommand = new SqlCommand();

dap.DeleteCommand.Connection = Sistema.Conexion;

dap.DeleteCommand.CommandText = "usp_EliminarDetalleVenta";

dap.DeleteCommand.CommandType = CommandType.StoredProcedure;

dap.DeleteCommand.Parameters.Add("@DetVentasId",SqlDbType.Int);


dap.DeleteCommand.Parameters["@DetVentasId"].SourceColumn = "DetVentasId";

dap.Update(dt);

El dap.Update(dt) no me bota ningún error.

Gracias por su ayuda.

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo, [MVP VB.NET]
27/07/2005 - 20:47 | Informe spam
Pues precisamente, el comando que usas remueve el DataRow del DataTable, por
lo que cuando el DataAdapter actualiza los cambios, no hace nada con ese
registro, pues ya no existe.

En lugar de removerlo del DataTable, debes dejarlo ahi y marcarlo como un
registro eliminado: utiliza el metodo Delete() del DataRow.


Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Antonio Garcia" escribió en el mensaje
news:OdE%
Hola amigos he construido manualmente mi Command para mi SqlDataAdapter y
funciona muy bien para el Update y el Insert pero para el Delete no
funciona, cuando yo elimino una fila de mi DataTable lo hago mediante
DataTable.Rows.RemoveAt(Fila) ¿será por eso que no funciona?

Mi codigo del DeleteCommand es:

dap.DeleteCommand = new SqlCommand();

dap.DeleteCommand.Connection = Sistema.Conexion;

dap.DeleteCommand.CommandText = "usp_EliminarDetalleVenta";

dap.DeleteCommand.CommandType = CommandType.StoredProcedure;

dap.DeleteCommand.Parameters.Add("@DetVentasId",SqlDbType.Int);


dap.DeleteCommand.Parameters["@DetVentasId"].SourceColumn = "DetVentasId";

dap.Update(dt);

El dap.Update(dt) no me bota ningún error.

Gracias por su ayuda.


Respuesta Responder a este mensaje
#2 Antonio Garcia
27/07/2005 - 22:36 | Informe spam
Estimado amigo, el DataRow no tiene ningun método Delete( )

"Pedro Luna Montalvo, [MVP VB.NET]"
escribió en el mensaje news:
Pues precisamente, el comando que usas remueve el DataRow del DataTable,
por lo que cuando el DataAdapter actualiza los cambios, no hace nada con
ese registro, pues ya no existe.

En lugar de removerlo del DataTable, debes dejarlo ahi y marcarlo como un
registro eliminado: utiliza el metodo Delete() del DataRow.


Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Antonio Garcia" escribió en el mensaje
news:OdE%
Hola amigos he construido manualmente mi Command para mi SqlDataAdapter y
funciona muy bien para el Update y el Insert pero para el Delete no
funciona, cuando yo elimino una fila de mi DataTable lo hago mediante
DataTable.Rows.RemoveAt(Fila) ¿será por eso que no funciona?

Mi codigo del DeleteCommand es:

dap.DeleteCommand = new SqlCommand();

dap.DeleteCommand.Connection = Sistema.Conexion;

dap.DeleteCommand.CommandText = "usp_EliminarDetalleVenta";

dap.DeleteCommand.CommandType = CommandType.StoredProcedure;

dap.DeleteCommand.Parameters.Add("@DetVentasId",SqlDbType.Int);


dap.DeleteCommand.Parameters["@DetVentasId"].SourceColumn =
"DetVentasId";

dap.Update(dt);

El dap.Update(dt) no me bota ningún error.

Gracias por su ayuda.






Respuesta Responder a este mensaje
#3 Pedro Luna Montalvo, [MVP VB.NET]
29/07/2005 - 21:36 | Informe spam
Pos mi amigo si el metodo no existe, mi codigo ha vivido engañado todo este
tiempo :)

Verifica bien que llegas hasta el objeto DataRow, de repente navegas hasta
el DataRowCollection.

Aca esta la documentacion en linea del metodo Delete() del DataRow:
http://msdn.microsoft.com/library/d...etopic.asp


Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Antonio Garcia" escribió en el mensaje
news:%
Estimado amigo, el DataRow no tiene ningun método Delete( )

"Pedro Luna Montalvo, [MVP VB.NET]"
escribió en el mensaje news:
Pues precisamente, el comando que usas remueve el DataRow del DataTable,
por lo que cuando el DataAdapter actualiza los cambios, no hace nada con
ese registro, pues ya no existe.

En lugar de removerlo del DataTable, debes dejarlo ahi y marcarlo como un
registro eliminado: utiliza el metodo Delete() del DataRow.


Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"Antonio Garcia" escribió en el mensaje
news:OdE%
Hola amigos he construido manualmente mi Command para mi SqlDataAdapter
y funciona muy bien para el Update y el Insert pero para el Delete no
funciona, cuando yo elimino una fila de mi DataTable lo hago mediante
DataTable.Rows.RemoveAt(Fila) ¿será por eso que no funciona?

Mi codigo del DeleteCommand es:

dap.DeleteCommand = new SqlCommand();

dap.DeleteCommand.Connection = Sistema.Conexion;

dap.DeleteCommand.CommandText = "usp_EliminarDetalleVenta";

dap.DeleteCommand.CommandType = CommandType.StoredProcedure;

dap.DeleteCommand.Parameters.Add("@DetVentasId",SqlDbType.Int);


dap.DeleteCommand.Parameters["@DetVentasId"].SourceColumn =
"DetVentasId";

dap.Update(dt);

El dap.Update(dt) no me bota ningún error.

Gracias por su ayuda.










email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida