Curso sobre programacion c# y Visual Studio 2019. En este blog veremos tutoriales para aprender a crear nuestras aplicaciones de consola,aplicaciones web, SQL , Tensorflow y Machine Learning
- En este capítulo del curso de programación en c# con visual studio
2017,vamos a ver un control de uso común en muchas de las páginas web
que utilizamos habitualmente. Este control es el Chart, que es
un componente que se utiliza para mostrar gráficos en pantalla de uan manera fácil.
- El control de servidor Chartpermite crear páginas ASP.NET que incluyan gráficos de análisis estadístico. Algunas de las características que admite el control Chartson las siguientes:
Series de datos, áreas de gráfico, ejes, leyendas, etiquetas y títulos.
Enlace de datos.
Manipulación de datos, como copiar, dividir, combinar, alinear, agrupar, ordenar, buscar y filtrar.
Fórmulas estadísticas y financieras.
Apariencia avanzada de los gráficos, como 3D, suavizado de contorno, iluminación y perspectiva.
- En el siguiente video os muestro como enlazar el control Chart a un procedimiento almacenado de nuestra base de datos. Permite mostrar en pantalla gráficos enlazados a múltiples origenes de datos, en nuestra caso utilizamos nuestra base de datos de pruebas:
- Os dejo un enlace a la página de Microsoft con más información este control:
- En este capítulo del curso de programación en c# con visual studio
2017,vamos a ver un control de uso común en muchas de las páginas web
que utilizamos habitualmente. Este control es el ListView, que es un componente que muestra los valores de un origen de datos previamente seleccionado ,mediante plantillas definidas por el usuario.
- En esta ocasión vamos a cargar los datos del control utilizando el asistente que trae Visual Studio 2017. Este asistente nos permite seleccionar un origen de datos que puede ser un base de datos SQL o un fichero XML entre otros. En nuestro ejemplo vamos a enlazar el control a un procedimiento almacenado que nos devuelve el listado de paises y su código correspondiente.
- Una vez enlazado a un origen de datos como habéis visto en el video, es posible utilizar una de las plantillas predefinidas para visualizar los datos como más nos interesen.
- Como en el resto de controles de .NET también es posible editar las propiedades y eventos del control desde el fichero .cs en el que este alojado el control.
- Os dejo un enlace a la MSDN con más información y el código de la página aspx donde hemos alojado nuestro control de pruebas:
42-. Aplicaciones web.Guardar Pedidos.Carrito de compra(5)
- En este capítulo del curso de programación en c# con visual studio
2017,vamos afinalizar nuestro ejemplo del carrito de compra.Para ello vamos guardar en nuestra base de datos los pedidos que un usuario previamente logado en la web hace una vez desde la página.
- Os dejo un una imagen con el diseño de las tablas de nuestra base de datos ya que hemos añadido el campo cantidad a nuestra tabla Pedidos_Lineas:
- Como podéis ver en el video siguiente, además de un botón para finalizar la compra hemos añadido un botón para limpiar nuestro carrito de la compra.El botón finalizar compra llama a un procedimiento almacenado que guarda en nuestra base datos el pedido con todos sus productos asociados. El botón limpiar carro borra todos los articulos que tengamos en el carrito.
- Os dejo el código de lo visto en el video y un enlace a Microsoft para que sepáis cuando usar la función identity de SQL.
Procedimento almacenado SQL:
ALTER PROCEDURE [dbo].[GuardarPedido]
@idUsuario int ,
@Lista AS dbo.ListaProductosCompra READONLY
AS
BEGIN
DECLARE @TablaTemp2 TABLE(IdTemp int NOT NULL, cantidad int)
INSERT INTO @TablaTemp2 SELECT idprodcuto,cantidad FROM @lista
--INSERTAMOS EN TABLA PEDIDOS
DECLARE @idpedidoAux int
INSERT INTO dbo.Pedidos (IdUsuario,FechaPedido) VALUES (@idUsuario ,GETDATE() )
SET @idpedidoAux = @@IDENTITY
--INSERTAMOS EN TABLA LINEAS PEDIDOS
INSERT INTO Pedido_Lineas
SELECT @idpedidoAux,* FROM @TablaTemp2
END
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GestionVarios
{
public partial class Pedidos : System.Web.UI.Page
{
private ArrayList productosSeleccionados = new ArrayList();
private void CargarDatosProducto(string idProducto)
{
SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);
private void CargarListaProducto(DataTable productos)
{
SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);
41-. Aplicaciones web.GridView.Carrito de compra(4)
- En este capítulo del curso de programación en c# con visual studio
2017,vamos a utilizar el control GridView y el objeto DataTable. En el objeto DataTable iremos almacenando los productos y las cantidades seleccionadas, para posteriormente validar contra nuestra base de datos que estos productos existen.Una vez comprobado que estos productos existen los mostramos al usuario en el control GridView
- Os dejo unas pinceladas de estos dos controles y unos enlaces a la MSDN:
DataTable: Un objeto DataTable
representa una tabla de datos relacionales de la memoria; los datos son
locales de la aplicación basada en .NET en la que residen, pero se
pueden llenar desde un origen de datos como Microsoft SQL Server.(Más información)
GridView:Muestra
los valores de un origen de datos en una tabla en la que cada columna
representa un campo y cada fila representa un registro. El control GridView le permite seleccionar, ordenar y editar estos elementos.(Más información)
- Os dejo el código SQL y el código de la página de la aplicación vista en el video:
Procedimiento alamcenado SQL al que llamamamos para cargar el Gridview:
CREATE PROCEDURE [dbo].[DameDatosProductos]
@Lista AS dbo.ListaProductosCompra READONLY AS BEGIN
DECLARE @TablaTemp2 TABLE(IdTemp int NOT NULL, cantidad int) INSERT INTO @TablaTemp2 SELECT idprodcuto,cantidad FROM @lista
SELECT IdProducto,Nombre,PrecioVenta,t.cantidad,Descripcion FROM Productos INNER JOIN @TablaTemp2 as t ON t.IdTemp = Productos.idproducto
using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
namespace GestionVarios { public partial class Pedidos : System.Web.UI.Page { private ArrayList productosSeleccionados = new ArrayList();
private void CargarDatosProducto(string idProducto) { SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);
DataTable dt = new DataTable(); dt.Columns.Add("idProducto"); dt.Columns.Add("Cantidad");
for (int i = 0; i < productos.Count; i=i+2) dt.Rows.Add(productos[i], productos[i + 1]);
CargarListaProducto(dt);
}
private void CargarListaProducto(DataTable productos) { SqlConnection Con = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);