Пример #1
0
        public void SaveProducto(Producto pProducto)
        {
            List <IDbCommand> ListaCommands = new List <IDbCommand>();
            string            sql           = @"  INSERT INTO [dbo].[TProducto]
                                       ([ID_Producto]
                                       ,[Descripcion]
                                       ,[ID_Categoria]
                                       ,[Precio]
                                       ,[Imagen]

                                       )
                                 VALUES
                                        (@Id_Producto,
                                        @Descripcion,
                                        @Id_Categoria, 
                                        @Precio,
                                        @Imagen)";


            SqlCommand cmdEncabezado = new SqlCommand();

            // Pasar parámetros
            cmdEncabezado.Parameters.AddWithValue("@Id_Producto", pProducto.Id);
            cmdEncabezado.Parameters.AddWithValue("@Descripcion", pProducto.Descripcion);
            cmdEncabezado.Parameters.AddWithValue("@Id_Categoria", pProducto.Categoria.Id);
            cmdEncabezado.Parameters.AddWithValue("@Precio", pProducto.Precio);
            cmdEncabezado.Parameters.AddWithValue("@Imagen", pProducto.Imagen ?? (object)DBNull.Value);
            cmdEncabezado.CommandText = sql;
            cmdEncabezado.CommandType = CommandType.Text;
            ListaCommands.Add(cmdEncabezado);


            foreach (var item in pProducto.Req_Productos)
            {
                SqlCommand cmdDetalle = new SqlCommand();
                sql = @"   

                            INSERT INTO [dbo].[TProducto_Material]
                                       ([ID_Producto]
                                       ,[ID_Material]
                                       ,[Cantidad]
                                       )
                                 VALUES
                                       (@ID_Producto, 
                                       @ID_Material,
                                       @Cantidad,
                                      ) ";


                cmdDetalle.Parameters.AddWithValue("@ID_Producto", item.Producto.Id);
                cmdDetalle.Parameters.AddWithValue("@ID_Material", item.Material.Id);
                cmdDetalle.Parameters.AddWithValue("@Cantidad", item.Cantidad);


                cmdDetalle.CommandText = sql;
                ListaCommands.Add(cmdDetalle);
            }


            using (IDataBase db = FactoryDatabase.CreateDataBase(ConfigurationManager.ConnectionStrings["Capa.UI.Properties.Settings.ConnectionString"].ConnectionString))
            {
                db.ExecuteNonQuery(ListaCommands, IsolationLevel.ReadCommitted);
            }
        }