Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas al hacer Delete

Estas en el tema de Problemas al hacer Delete en el foro de .NET en Foros del Web. Hola. Tengo un datagrid, del cual obtengo la fila que esta seleccionada y obtengo tambien el valor correspondiente a la clave primaria, la cual es ...
  #1 (permalink)  
Antiguo 05/02/2008, 14:40
 
Fecha de Ingreso: enero-2008
Mensajes: 27
Antigüedad: 16 años, 2 meses
Puntos: 0
Problemas al hacer Delete

Hola.

Tengo un datagrid, del cual obtengo la fila que esta seleccionada y obtengo tambien el valor correspondiente a la clave primaria, la cual es la que quiero eliminar. Al hacer el Delete no me da fallo, pero no me lo elimina de la base de datos y no entiendo el porqué o si em falta algo por hacer. Os dejo el codigo que utilizo por si veis algo mas.

int i = dataGridCliente.CurrentCell.RowIndex;
string cif = dataGridCliente.Rows[i].Cells[1].Value.ToString();
string delete = "DELETE FROM Clientes WHERE CIF = @cif";
string conexion = "server=(local);database=Agente Comercial;Trusted_Connection=yes";
SqlConnection conectar = new SqlConnection(conex);
SqlCommand comand = new SqlCommand(delete, conectar);
conectar.Open();
try {
comand.ExecuteNonQuery();
}
catch (Exception exc)
{
throw new Exception("Error al eliminar datos", exc);
}
finally
{
conectar.Close();
}
MessageBox.Show("Registro Eliminado", "Cliente");

He probado a meter valores directamente en lugar de @cif y tampoco me los elimina asi que no se que puede pasar. Gracias
  #2 (permalink)  
Antiguo 05/02/2008, 16:42
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Problemas al hacer Delete

No soy programador, pero creo que esta linea deberia ser algo mas o menos asi:

string delete = "DELETE FROM Clientes WHERE CIF ="+ @cif;
  #3 (permalink)  
Antiguo 05/02/2008, 23:21
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: Problemas al hacer Delete

deberia ser sin el @:

string delete = "DELETE FROM Clientes WHERE CIF =" + cif;

todo el resto del codigo parece estar correcto.

Pregunta:
- verificaste que en la variable i que contiene el valor del grid, contenga el valor correcto?
- que pasa si usas el string que contatenaste en la variable delete directamente en el query del sql?
__________________
roy rojas
Programación en Español: DotNetcr.com
  #4 (permalink)  
Antiguo 06/02/2008, 08:29
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Problemas al hacer Delete

Una herramienta util seria el Profiler, para saber que comando esta ejecutando en realidad...


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 06/02/2008, 17:02
 
Fecha de Ingreso: enero-2008
Mensajes: 27
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problemas al hacer Delete

Gracias a todos por las respuestas.

Finalmente lo he solucionado añadiendo el parametro cif al SQLCommand. es decir he hecho command.Parameters.Add(......)

Saludos.
  #6 (permalink)  
Antiguo 12/02/2008, 15:01
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Problemas al hacer Delete

C# <> SQL Server. Va para .NET
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:36.