Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Requisitos:
Para el desarrollo de esta aplicación usamos la siguiente plataforma:
Windows XP
Visual Studio .NET 2005 (ASP.NET 2.0)
ORACLE 10g
Registrar al cliente
Mostrar un catalogo de los artículos en venta
Generar un carrito de compra y permitir su administración.
2
Machanay Sulca Carlos E.
ASP.NET & ORACLE
La pagina cargar con todo los articulos, usted puede elegir por linea de articulos, una vez
elegido la linea de articulos, usted puede ingresar la cantidad de articulos a comprar, una
vez ingresado la cantidad, seleccione la imagen del carrito que se encuentra en el
GridView.
Si usted termino de elegir el artículo que desea comprar, clic en el link Ver Carrito de
Compras.
3
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Carrito de Compras:
Una vez que usted ha seleccionado los 2 artículos con anterioridad, note usted que en
esta pagina se encuentran dichos artículos, el cual usted puede modificar la cantidad y
actualizar si usted desea, puede quitar un articulo dando clic en el icono que se encuentra
en el GridView, en caso que usted ya no quiera, o si usted quiere comprar mas artículos
usted puede dar clic en el link Agregar un nuevo articulo, en caso que usted esta de
acuerdo con los artículos adquiridos, clic en el botón confirmar Pedido.
4
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Confirmación de Pedido:
Note usted que en esta página se muestra el monto total, si usted es un usuario
registrado, usted debe ingresar su inicio de sesión (correo) y password.
Si en caso usted no es un usuario registrado, usted debe registrarse.
5
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Registro de usuario:
En esta pagina usted se debe registrar para poder seguir con el circuito de la compra, una
vez registrado, automáticamente la pagina regresara a la pagina Confirmación de
Pedido.
6
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Confirmación de Pedido:
7
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Pedido confirmado:
En esta ventana note usted la generación del pedido con los artículos y datos del usuario,
clic en enviar.
8
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Mensaje:
9
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Esquema Venta.
10
Machanay Sulca Carlos E.
ASP.NET & ORACLE
11
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Insertando datos a la tabla LÍNEA
INSERT INTO LINEA VALUES(101,’LACTEOS’);
INSERT INTO LINEA VALUES(102,’EMBUTIDOS’);
INSERT INTO LINEA VALUES(103,’CEREALES’);
INSERT INTO LINEA VALUES(104,’BEBIDAS’);
Insertando datos a la tabla ARTICULO
INSERT INTO ARTICULO VALUES(1001,'LECHE EVAPORADA',101,50,2.50,'12/01/09');
INSERT INTO ARTICULO VALUES(1002,'LECHE SEMIDESCREMADA',101,200,2.8,'01/04/09');
INSERT INTO ARTICULO VALUES(1003,'LECHE MAMA',101,130,3.2,'18/09/09');
BEGIN
SELECT 'C' ||
SUBSTR('000000'||LTRIM(SUBSTR(NVL(MAX(ID_USUARIO),'C000000'),6) + 1), -6)
INTO ID_USU FROM USUARIO;
INSERT INTO USUARIO
VALUES(ID_USU,VRAZON_SOCIAL,VNOMBRE_USUARIO,VCONTRASEÑA,VCORREO);
END;
12
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Store procedure (USP_INSERTAR_DETALLE)
CREATE OR REPLACE PROCEDURE USP_INSERTAR_DETALLE
(C_NUMERO_PEDIDO DETALLE.NUMERO_PEDIDO%TYPE,
N_ID_ARTICULO DETALLE.ID_ARTICULO%TYPE,
PRECIO DETALLE.PRECIO%TYPE,
CANTIDAD DETALLE.CANTIDAD%TYPE)
AS
BEGIN
INSERT INTO DETALLE
VALUES(C_NUMERO_PEDIDO,N_ID_ARTICULO,PRECIO,CANTIDAD);
END;
trigger (TG_ACTUALIZAR_STOCK)
CREATE OR REPLACE TRIGGER TG_ACTUALIZAR_STOCK
BEFORE INSERT ON DETALLE
FOR EACH ROW
BEGIN
UPDATE ARTICULO
SET ARTICULO.STOCK_ARTICULO =(ARTICULO.STOCK_ARTICULO - :NEW.CANTIDAD)
WHERE ARTICULO.ID_ARTICULO =:NEW.ID_ARTICULO;
END;
13
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo New Web Site, Languague: Visual Basic, Location: File
System, en el botón Browse especifique la ruta para guardar la aplicación Web, y al final
de especificar escriba el nombre de su aplicación Web: \TiendaVirtual. Seleccione
ASP.NET Web Site en el panel de Template, clic en el botón Ok.
14
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Add New Item, seleccione Visual Basic en el cuadro combinado
Languague y, a continuación seleccione Master Page en el panel de Template, en
Name: VentanaPrincipal.master, clic en el boton Add.
15
Machanay Sulca Carlos E.
ASP.NET & ORACLE
16
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Si usted desea agregar más filas y columnas a la tabla, entonces damos clic dentro de la
celda en menú Layout, clic en Insert, Row Below.
Seleccionamos la primera fila de la tabla tal como se muestra, clic derecho del Mouse,
Merge Cells.
17
Machanay Sulca Carlos E.
ASP.NET & ORACLE
1 Image
1 Label
3 ContentPlaceHolder
1 TreeView
18
Machanay Sulca Carlos E.
ASP.NET & ORACLE
19
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ImageURL:<especifique la ruta>
Estableciendo propiedades a los controles. Nota:
La imagen debe estar dentro del
proyecto.
Id: lblFecha
Id: lblHora
Id: tvMenu
20
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Add New Item, seleccione Visual Basic en el cuadro combinado
Languague y, a continuación seleccione Site Map en el panel de Template, en Name:
Web.sitemap, clic en el boton Add
21
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el Script del objeto Site Map, debe agregar el siguiente Script en title.
En el control TreeView, clic en la flecha, en Choose Data Source, clic en <New data
source>
22
Machanay Sulca Carlos E.
ASP.NET & ORACLE
23
Machanay Sulca Carlos E.
ASP.NET & ORACLE
24
Machanay Sulca Carlos E.
ASP.NET & ORACLE
25
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer el nombre para el objeto Web Form es tal
como se muestra.
4 Label
1 Button
1 ListBox
1 HyperLink
1 DataGridView
26
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: lblTotal
Font: Verdana, 8pt
Text: Línea de Productos
Font: Verdana, 8pt
ID: lbLinea
Font: Verdana, 8pt
AutoPostBack: True
ID: btnAgregar
Text: Agregar mas articulo ID: gvListado
Font: Verdana, 8pt Font: Verdana, 8pt
27
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Add New Item, seleccione Visual Basic en el cuadro combinado
Languague y, a continuación seleccione Global Application Class en el panel de
Template, en Name: Global.asax, clic en el botón Add
28
Machanay Sulca Carlos E.
ASP.NET & ORACLE
dt.Columns.Add(dc0)
dt.Columns.Add(dc1)
dt.Columns.Add(dc2)
dt.Columns.Add(dc3)
dt.Columns.Add(dc4)
dt.Columns.Add(dc5)
dc2.DefaultValue = 1
dc5.Expression = "Precio * Cantidad"
dc1.Unique = True
Session("Carrito") = dt
29
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Add New Item, seleccione Visual Basic en el cuadro combinado
Languague y, a continuación seleccione Style Sheet en el panel de Template, en Name:
StyleSheet.css, clic en el botón Add
30
Machanay Sulca Carlos E.
ASP.NET & ORACLE
background-color: #CC9966;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
margin: 0px;
text-align: center;
}
.alinearizquierda {
text-align: left;
width: 900px;
}
.formatomenusuperior {
color: #FF9900;
background-color: #000000;
padding: 10px;
font-size: 10px;
}
.formatoareaizquierda {
background-color: #E8D1BB;
}
.formatoareaderecha {
background-color: #003333;
}
.formatocontenidoderecha {
color: #CCA400;
padding: 15px;
font-size: 10px;
}
.formatopiepagina {
color: #993300;
background-color: #E6BEB3;
padding: 15px;
font-size: 10px;
}
.fondopagina {
background-color: #FFFFFF;
}
h1
{
font-size: 16pt;
color: #ff3366;
font-family: Georgia;
border-bottom: #ffcc33 1px solid;
}
H4
{
padding-left: 10px;
font-size: 12pt;
color: #996666;
font-family: Arial;
}
.estilolista
31
Machanay Sulca Carlos E.
ASP.NET & ORACLE
{
font-size: 10pt;
color: #003366;
font-family: Arial;
background-color: #ffcc66;
}
A
{
color: #ffcc66;
text-decoration: none;
}
A:hover
{
text-decoration: underline;
32
Machanay Sulca Carlos E.
ASP.NET & ORACLE
33
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Add New Item, seleccione Visual Basic en el cuadro combinado
Languague y, a continuación seleccione Class en el panel de Template, en Name:
Principal.vb, clic en el botón Add
34
Machanay Sulca Carlos E.
ASP.NET & ORACLE
35
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Imports System.Data.OracleClient
Imports System.Data
Imports System.Text
36
Machanay Sulca Carlos E.
ASP.NET & ORACLE
37
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Nota: en Auto Generate Fields debemos deshabilitar el Check, esto indica que solo se
mostrar los campos que se han agregado clic en el botón Ok.
38
Machanay Sulca Carlos E.
ASP.NET & ORACLE
39
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: txtCantidad
Font: Verdana, 10pt
40
Machanay Sulca Carlos E.
ASP.NET & ORACLE
41
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Imports System.Data
Imports System.Data.OracleClient
MiPrincipal.sSQL.Length = 0
MiPrincipal.sSQL.Append("Select id_linea,nombre_linea from linea ")
Me.lbLinea.DataSource = MiPrincipal.dts.Tables(0)
Me.lbLinea.DataTextField = "nombre_linea"
Me.lbLinea.DataValueField = "id_linea"
Me.lbLinea.DataBind()
End Sub
End Sub
42
Machanay Sulca Carlos E.
ASP.NET & ORACLE
MiPrincipal.sSQL.Length = 0
MiPrincipal.sSQL.Append(" select
a.id_articulo,a.nombre_articulo,l.nombre_linea,a.precio_articulo,to_char(a.fecha_vencimiento,'DD/MM/YYYY')as fecha_vencimiento ")
MiPrincipal.sSQL.Append(" from articulo a left outer join linea l on a.id_linea=l.id_linea ")
MiPrincipal.da = New OracleDataAdapter(MiPrincipal.sSQL.ToString, MiPrincipal.cnx)
MiPrincipal.dts = New DataSet
MiPrincipal.da.Fill(MiPrincipal.dts)
Me.gvListado.DataSource = MiPrincipal.dts.Tables(0)
Me.gvListado.DataBind()
End Sub
MiPrincipal.sSQL.Length = 0
MiPrincipal.sSQL.Append(" select
a.id_articulo,a.nombre_articulo,l.nombre_linea,a.precio_articulo,to_char(a.fecha_vencimiento,'DD/MM/YYYY')as fecha_vencimiento ")
MiPrincipal.sSQL.Append(" from articulo a left outer join linea l on a.id_linea=l.id_linea ")
MiPrincipal.sSQL.Append(" where a.id_linea=" & Me.lbLinea.SelectedValue)
43
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Try
CargarArticulos()
CargarLinea()
Calculartotal()
End If
44
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer el nombre para el objeto Web Form es tal
como se muestra.
2 Label
2 Button
1 HyperLink
1 DataGridView
45
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: gvCarrito
Font: Verdana, 8pt
46
Machanay Sulca Carlos E.
ASP.NET & ORACLE
47
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Nota: en Auto Generate Fields debemos deshabilitar el Check, esto indica que solo se
mostrar los campos que se han agregado clic en el botón Ok.
48
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: txtCantidad
Font: Verdana, 10pt
49
Machanay Sulca Carlos E.
ASP.NET & ORACLE
<ItemTemplate>
</ItemTemplate>
50
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Imports System.Data
Imports System.Data.OracleClient
End Sub
51
Machanay Sulca Carlos E.
ASP.NET & ORACLE
dtCarrito = Session("Carrito")
Me.gvCarrito.DataSource = dtCarrito
Me.gvCarrito.DataBind()
calculartotal()
End If
Response.Redirect("ConfirmarPedido.aspx")
52
Machanay Sulca Carlos E.
ASP.NET & ORACLE
53
Machanay Sulca Carlos E.
ASP.NET & ORACLE
54
Machanay Sulca Carlos E.
ASP.NET & ORACLE
55
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer el nombre para el objeto Web Form es tal
como se muestra.
1 Label
2 TextBox
1 GridView
2 Button
56
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: lblTotal
Font: Verdana, 16pt
Bold: True
ID: txtPassword
Font: Verdana, 8pt
ID: txtInicio
Font: Verdana, 8pt
Text: Registrese
ID: btnRegistrese ID: gvUsuario Text: Aceptar
Font: Verdana, 8pt Font: Verdana, 8pt ID: btnAceptar
Font: Verdana, 8pt
57
Machanay Sulca Carlos E.
ASP.NET & ORACLE
58
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Nota: en Auto Generate Fields debemos deshabilitar el Check, esto indica que solo se
mostrar los campos que se han agregado clic en el botón Ok.
59
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Imports System.Data
Imports System.Data.OracleClient
CalcularTotal()
MiPrincipal.sSQL.Length = 0
MiPrincipal.sSQL.Append(" select id_usuario,razon_social,nombre_usuario from usuario ")
MiPrincipal.sSQL.Append(" where contraseña='" & Me.txtPassword.Text & "' and correo_usuario='" & Me.txtInicio.Text & "'")
MiPrincipal.da.Fill(MiPrincipal.dts)
Me.gvUsuario.DataSource = MiPrincipal.dts.Tables(0)
Me.gvUsuario.DataBind()
60
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Response.Redirect("RegistroUsuario.aspx")
Response.Redirect("PedidoConfirmado.aspx?OPCION=VER&CODIGO=" & id & "&EMPRESA=" & emp & "&USUARIO=" & usu)
61
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer el nombre para el objeto Web Form es tal
como se muestra.
5 TextBox
1 Button
4 RequiredFieldValidator
1 ValidationSummary
62
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: txtcontraseña
Font: Verdana, 8pt ID: txtcorreo ID: btnRegistrese
TextMode: Password Font: Verdana, 8pt Font: Verdana, 8pt
Text: Registrese
ShowMessageBox: True
ShowSummary: False
63
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Imports System.Data
Imports System.Data.OracleClient
Me.txtEmpresa.Text = ""
Me.txtUsuario.Text = ""
Me.txtContraseña.Text = ""
Me.txtCorreo.Text = ""
End Sub
Try
MiPrincipal.cnx.Open()
MiPrincipal.cmd = New OracleCommand
With MiPrincipal.cmd
.Connection = MiPrincipal.cnx
.CommandText = "USP_INSERTAR_USUARIO"
.CommandType = CommandType.StoredProcedure
pr1.Value = 0
pr2.Value = Me.txtEmpresa.Text
pr3.Value = Me.txtUsuario.Text
pr4.Value = Me.txtContraseña.Text
pr5.Value = Me.txtCorreo.Text
.ExecuteNonQuery()
MsgBox("Dato registrado", MsgBoxStyle.Information)
End With
Catch ex As Exception
Finally
If MiPrincipal.cnx.State = ConnectionState.Open Then MiPrincipal.cnx.Close()
Limpiar()
End Try
Response.Redirect("ConfirmarPedido.aspx")
64
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer el nombre para el objeto Web Form es tal
como se muestra.
5 Button
1 GridView
2 Button
65
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: lblCodigo
Font: Verdana, 14pt
Bold: True
ID: lblUsuario
Font: Verdana, 14pt
Bold: True
ID: gvUsuario
Font: Verdana, 8pt
ID: btnEnviar
Font: Verdana, 8pt ID: btnCancelar ID: lblTotal
Text: Enviar Font: Verdana, 8pt Font: Verdana, 14pt
Text: Cancelar Bold: True
66
Machanay Sulca Carlos E.
ASP.NET & ORACLE
ID: btnCancelar
Font: Verdana, 8pt
Text: Cancelar
67
Machanay Sulca Carlos E.
ASP.NET & ORACLE
6 BoundField
Nota: en Auto Generate Fields debemos deshabilitar el Check, esto indica que solo se
mostrar los campos que se han agregado clic en el botón Ok.
68
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Imports System.Data
Imports System.Data.OracleClient
MiPrincipal.sSQL.Length = 0
MiPrincipal.sSQL.Append(" SELECT 'P' || SUBSTR('00000000000'||LTRIM(SUBSTR(NVL(MAX(NUMERO_PEDIDO),'C00000000000'),11) +
1), -11) ")
MiPrincipal.sSQL.Append(" FROM PEDIDO ")
End Sub
69
Machanay Sulca Carlos E.
ASP.NET & ORACLE
Try
MiPrincipal.cnx.Open()
MiPrincipal.cmd = New OracleCommand
With MiPrincipal.cmd
.Connection = MiPrincipal.cnx
.CommandText = "USP_INSERTAR_PEDIDO"
.CommandType = CommandType.StoredProcedure
pr1.Value = Me.lblPedido.Text
pr2.Value = Now.ToShortDateString
pr3.Value = Me.lblCodigo.Text
pr4.Value = Me.lblTotal.Text
.ExecuteNonQuery()
End With
pc1.Value = Me.lblPedido.Text
pc2.Value = Me.gvCarrito.Rows(x).Cells(1).Text
pc3.Value = Me.gvCarrito.Rows(x).Cells(3).Text
pc4.Value = Me.gvCarrito.Rows(x).Cells(4).Text
.ExecuteNonQuery()
End With
Next
MsgBox("Su pedido fue enviado", MsgBoxStyle.Information)
Catch ex As Exception
Finally
If MiPrincipal.cnx.State = ConnectionState.Open Then MiPrincipal.cnx.Close()
End Try
End Sub
70
Machanay Sulca Carlos E.
ASP.NET & ORACLE
NuevoPedido()
Session("IOPCION") = Request("OPCION")
If Session("IOPCION") = "VER" Then
Me.lblCodigo.Text = Request("CODIGO")
Me.lblEmpresa.Text = Request("EMPRESA")
Me.lblUsuario.Text = Request("USUARIO")
End If
dtCarrito = Session("Carrito")
Me.gvCarrito.DataSource = dtCarrito
Me.gvCarrito.DataBind()
calculartotal()
End If
Guardar()
71
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer el nombre para el objeto Web Form es tal
como se muestra.
2 Label
1 Button
72
Machanay Sulca Carlos E.
ASP.NET & ORACLE
73
Machanay Sulca Carlos E.
ASP.NET & ORACLE
En el cuadro de dialogo Solution Explorer clic derecho en proyecto Web, Build Web
Site.
74