transaccion con varias consultas
Publicado por anthony (10 intervenciones) el 22/11/2018 03:12:53
hola amigos buenas noches estoy armando un metodo donde guardo pedido y detalle ejcutando una transaccion
pero cuando lo ejecuto se pega y arroja tiempo de espera agotado mi codigo es el siguiente
pero cuando lo ejecuto se pega y arroja tiempo de espera agotado mi codigo es el siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{
using (SqlConnection con = new SqlConnection(conexion))
{
con.Open();
transaccion = con.BeginTransaction();
try
{
consultar = new SqlCommand(@"
INSERT INTO [shop].[Pedido]([FechaEmision],[FechaEntrega],[IDCliente],[DocIdentidad],[Direccion],[NumeroDoc],[ValorVenta],[ValorAfecto],[Valorinafecto],[SubTotal],[Descuento],[Total],[IDAlmacen],[IDResponsable],[Anulado],[EstadoFacturacion])
VALUES(convert(datetime2,@FechaEmision,102),convert(datetime2,@FechaEntrega,102),@IDCliente,@DocIdentidad,@Direccion,@NumDoc,@ValorVenta,@ValorAfecto,@ValorInafecto,@Subtotal,@Descuento,@Total,@IDAlmacen,@IDResponsable,0,@EstadoFacturacion)
", con);
consultar.Parameters.AddWithValue("@FechaEmision", FechaEmision);
consultar.Parameters.AddWithValue("@FechaEntrega", FechaEntrega);
consultar.Parameters.AddWithValue("@IDCliente", IDCliente);
consultar.Parameters.AddWithValue("@DocIdentidad", DocIdentidad);
consultar.Parameters.AddWithValue("@Direccion", Direccion);
consultar.Parameters.AddWithValue("@NumDoc", NumDoc);
consultar.Parameters.AddWithValue("@ValorVenta", ValorVenta);
consultar.Parameters.AddWithValue("@ValorAfecto", ValorAfecto);
consultar.Parameters.AddWithValue("@ValorInafecto", ValorInafecto);
consultar.Parameters.AddWithValue("@Subtotal", Subtotal);
consultar.Parameters.AddWithValue("@Descuento", Descuento);
consultar.Parameters.AddWithValue("@Total", Total);
consultar.Parameters.AddWithValue("@IDAlmacen", IDAlmacen);
consultar.Parameters.AddWithValue("@IDResponsable", IDResponsable);
consultar.Parameters.AddWithValue("@EstadoFacturacion", EstadoFacturacion);
consultar.Transaction = transaccion;
try { consultar.ExecuteNonQuery(); } catch (Exception e) { MessageBox.Show(e.Message); };
foreach (DataGridViewRow fila in dgv.Rows)
{
if (Convert.ToBoolean(entidad.EntidadID3(conexion, "inafecto", "ImpuestoProductoServicio", "IDProductoServicio = " +
entidad.EntidadID(conexion, "productoservicio", "codigo", fila.Cells[0].Value.ToString()))) == true)
{
consultar = new SqlCommand(@"
INSERT INTO [shop].[ItemPedido]([IDPedido],[IDProducto],[Descripcion],[ValorUnitario],[ValorImpuesto],[IDUnidad],[Cantidad],[Inafecto],[bonificacion],[ValorAfecto],[ValorInafecto],[ValorVenta],[Descuento],[SubTotal],[Total])
VALUES(@IDPedido,@IDProducto,@Descripcion,@ValorUnitario,18.00,@IDUnidad,@Cantidad,@Inafecto,@bonificacion,@ValorAfecto,@ValorInafecto,@ValorVenta,@Descuento,@SubTotal,@Total)
", con);
consultar.Parameters.AddWithValue("@IDPedido", entidad.EntidadID2(conexion, "max(pkid) + 1", "shop.pedido"));
consultar.Parameters.AddWithValue("@IDProducto", entidad.EntidadID(conexion, "productoservicio", "codigo", fila.Cells[0].Value.ToString()));
consultar.Parameters.AddWithValue("@Descripcion", fila.Cells[1].Value.ToString());
consultar.Parameters.AddWithValue("@ValorUnitario", fila.Cells[4].Value.ToString());
consultar.Parameters.AddWithValue("@IDUnidad", entidad.EntidadID3(conexion, "PKID", "unidad", "IDProductoServicio = " + entidad.EntidadID(conexion, "productoservicio", "codigo", fila.Cells[0].Value.ToString()) + " and Abreviacion = '" + fila.Cells[2].Value.ToString() + "'"));
consultar.Parameters.AddWithValue("@Cantidad", fila.Cells[3].Value.ToString());
consultar.Parameters.AddWithValue("@Inafecto", 1);
consultar.Parameters.AddWithValue("@bonificacion", fila.Cells[6].Value.ToString());
consultar.Parameters.AddWithValue("@ValorAfecto", 0);
consultar.Parameters.AddWithValue("@ValorInafecto", (Convert.ToInt32(fila.Cells[3].Value) * Convert.ToDecimal(fila.Cells[4].Value)));
consultar.Parameters.AddWithValue("@ValorVenta", (Convert.ToDecimal(fila.Cells[7].Value) / (decimal)1.18).ToString());
consultar.Parameters.AddWithValue("@Descuento", fila.Cells[5].Value.ToString());
consultar.Parameters.AddWithValue("@SubTotal", fila.Cells[7].Value.ToString());
consultar.Parameters.AddWithValue("@Total", fila.Cells[8].Value.ToString());
consultar.Transaction = transaccion;
try { consultar.ExecuteNonQuery(); } catch (Exception e) { MessageBox.Show(e.Message); };
}
}
transaccion.Commit();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
transaccion.Rollback();
}
}
}
Valora esta pregunta


1