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); } }