Probema con registros repetidos

07/07/2007 - 23:52 por guillevi42 | Informe spam
Hola a todos. Tengo un problema al insertar registros a una tabla en SQL
Server 2005.
Estoy desarrollando un formulario de ventas (c# 2005) en el cual al momento
de guardar, guarda bien en la tabla "ventas" pero no en la tabla
"detalleventas".

El problema es que en la tabla detalleventas me aparece en las filas que
haya insertado los mismos datos en todos los registros (ejm. no varia el
código del artículo), estos datos pertenecen al último artículo ingresado.


Cada vez que doy clic al botón "agregrarItem" llamo a este metodo:

public void AgregarItem(string prefijo,int conse, DateTime fecha,
string articulo,int cantidad, decimal precio, float impuesto,
float descuento)
{


DataRow nuevaFila;
nuevaFila = dsDetalle.Tables["detalleventas"].NewRow();
nuevaFila["Prefijo"] = prefijo;
nuevaFila["Consecutivo"] = conse;
nuevaFila["Fecha"] = fecha;
nuevaFila["Articulo"] = articulo;
nuevaFila["Cantidad"] = cantidad;
nuevaFila["Precio"] = precio;
nuevaFila["Impuesto"] = impuesto;
nuevaFila["Descuento"] = descuento;
dsDetalle.Tables["detalleventas"].Rows.Add(nuevaFila);
}

Declaro explicitamente en el DataAdapter el InsertCommand y el UpdateCommand

La aplicación no genera ninguna excepción.

Espero que alguien me de una idea de lo que pasa.

Gracias.

Preguntas similare

Leer las respuestas

#1 Diego Jancic
09/07/2007 - 04:17 | Informe spam
Hola,
Debes estar poniendo mal el insert command imagino, seguramente estas
haciendo un UPDATE sin el where en definitiva...
Resulta un poco complicado ayudarte con esa informacion, pero podrias
hacer un Profiler de Sql Server y ver que se esta ejecutando...

Saludos,
Diego
Respuesta Responder a este mensaje
#2 guillevi42
09/07/2007 - 17:20 | Informe spam
Hola Diego, gracias por tu ayuda.

No tengo mucho dominio de SQL Server serías tan amable de explicarme como
hacer un Profiler.

Aquí está el codigo del update por si por favor encuentras algo malo.

daDetalle.UpdateCommand = new SqlCommand("UPDATE detalleventas SET " +
"Prefijo = @Prefijo,Consecutivo = @Consecutivo,Fecha =
@Fecha, " +
"Articulo = @Articulo,Cantidad = @Cantidad,Precio = @Precio,
" +
"Impuesto = @Impuesto,Descuento = @Descuento " +
"WHERE IdDetalle = @oldIdDetalle AND Prefijo = @oldPRefijo " +
"AND Consecutivo = @oldConsecutivo", cnn);
daDetalle.UpdateCommand.Parameters.Add("@Prefijo",
SqlDbType.NChar, 2);
daDetalle.UpdateCommand.Parameters.Add("@Consecutivo",
SqlDbType.Int, 4);
daDetalle.UpdateCommand.Parameters.Add("@Fecha",
SqlDbType.DateTime);
daDetalle.UpdateCommand.Parameters.Add("@Articulo",
SqlDbType.NChar, 10);
daDetalle.UpdateCommand.Parameters.Add("@Cantidad",
SqlDbType.Int, 4);
daDetalle.UpdateCommand.Parameters.Add("@Precio",
SqlDbType.Decimal, 9);
daDetalle.UpdateCommand.Parameters.Add("@Impuesto",
SqlDbType.Float, 8);
daDetalle.UpdateCommand.Parameters.Add("@Descuento",
SqlDbType.Float, 8);


SqlParameter parametro1 = daDetalle.UpdateCommand.Parameters.Add(
"oldIdDetalle", SqlDbType.Int, 4);
parametro1.SourceVersion = DataRowVersion.Original;


SqlParameter parametro2 = daDetalle.UpdateCommand.Parameters.Add(
"@oldPrefijo", SqlDbType.NChar, 2, "Prefijo");
parametro2.SourceVersion = DataRowVersion.Current;

SqlParameter parametro3 = daDetalle.UpdateCommand.Parameters.Add(
"oldConsecutivo", SqlDbType.Int, 4, "Consecutivo");
parametro3.SourceVersion = DataRowVersion.Current;

De nuevo muchas gracias por la ayuda.

Saludos,

Juan Guillermo




"Diego Jancic" wrote:

Hola,
Debes estar poniendo mal el insert command imagino, seguramente estas
haciendo un UPDATE sin el where en definitiva...
Resulta un poco complicado ayudarte con esa informacion, pero podrias
hacer un Profiler de Sql Server y ver que se esta ejecutando...

Saludos,
Diego


Respuesta Responder a este mensaje
#3 guillevi42
10/07/2007 - 01:50 | Informe spam
Hola Diego,

Por fin pude solucionar mi inconveniente.
Lo que hice fue quitar los códigos del insertcommand y updatecommad y
utilizar el SqlCommandbuilder para que se generaran automáticamente los
comandos de insercción y actualización.

Saludos,

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