ASP Ejemplos
-
Upload
rfernandez100 -
Category
Documents
-
view
238 -
download
5
Transcript of ASP Ejemplos
PROGRAMA PARA LLENAR UN LISTBOX
Imports System.Data
Imports System.Data.SqlClient
Partial Class consulta1
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Sub listar()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("listaprod", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.Fill(ds, "pro")
dgvlista.DataSource = ds.Tables("pro")
dgvlista.DataBind()
End Sub
Sub llenarlista()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select supplierid,companyname
from suppliers", cn)
da.Fill(ds, "cli")
With lstlista
.DataSource = ds.Tables("cli")
.DataTextField = "companyname"
.DataValueField = "supplierid"
.DataBind()
End With
End Sub
Sub consulta(ByVal p As Integer)
Dim ds As New DataSet
Dim da As New SqlDataAdapter("consul", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add("@prov", SqlDbType.Int).Value
= p
da.Fill(ds, "cli")
dgvlista.DataSource = ds.Tables("cli")
dgvlista.DataBind()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
listar()
If Not Page.IsPostBack Then
llenarlista()
End If
End Sub
Protected Sub lstlista_SelectedIndexChanged(ByVal sender As
consulta(lstlista.SelectedValue)
End Sub
End Class
PROGRAMA PARA LENAR UN COMBO BOX
Imports System.Data
Imports System.Data.SqlClient
Partial Class pagina1
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Sub listar()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("listar", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.Fill(ds, "pro")
dgvlista.DataSource = ds.Tables("pro")
dgvlista.DataBind()
End Sub
Sub listarcombo()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select categoryid,categoryname
from categories", cn)
da.Fill(ds, "pro")
With cmbcategoria
.DataSource = ds.Tables("pro")
.DataTextField = "categoryname"
.DataValueField = "categoryid"
.DataBind()
End With
End Sub
Sub listarcombo2()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select supplierid,companyname
from suppliers", cn)
da.Fill(ds, "pro")
With cmbprov
.DataSource = ds.Tables("pro")
.DataTextField = "companyname"
.DataValueField = "supplierid"
.DataBind()
End With
End Sub
Sub guardarreg(ByVal nom As String, ByVal pre As Single, ByVal cat
As Integer, ByVal pro As Integer)
Dim comando As New SqlCommand
With comando
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "guardar"
.Parameters.Add("@nom", SqlDbType.NVarChar).Value = nom
.Parameters.Add("@pre", SqlDbType.Money).Value = pre
.Parameters.Add("@cat", SqlDbType.Int).Value = cat
.Parameters.Add("@pro", SqlDbType.Int).Value = pro
cn.Open()
.ExecuteNonQuery()
cn.Close()
End With
End Sub
Sub actualizarreg(ByVal nom As String, ByVal pre As Single, ByVal
cat As Integer, ByVal pro As Integer)
Dim ds As New DataSet
Dim da As New SqlDataAdapter("actualizar", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add("@nom", SqlDbType.NVarChar).Value =
nom
da.SelectCommand.Parameters.Add("@pre", SqlDbType.Money).Value = pre
da.SelectCommand.Parameters.Add("@cat", SqlDbType.Int).Value = cat
da.SelectCommand.Parameters.Add("@pro", SqlDbType.Int).Value = pro
da.Fill(ds, "pro")
dgvlista.DataSource = ds.Tables("pro")
dgvlista.DataBind()
End Sub
Sub buscar(ByVal nom As String)
Dim ds As New DataSet
Dim da As New SqlDataAdapter("buscar", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add("@bus", SqlDbType.NVarChar).Value =
nom
da.Fill(ds, "pro")
dgvlista.DataSource = ds.Tables("pro")
dgvlista.DataBind()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
listar()
'SENTENCIA NECESARIA PARA QUE LOS COMBOS TRABAJEN EN FORMA
INDEPENDIENTE
If Not Page.IsPostBack Then
listarcombo()
listarcombo2()
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
guardarreg(tnombre.Text, tprecio.Text, cmbcategoria.SelectedValue,
cmbprov.SelectedValue)
listar()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As
actualizarreg(tnombre.Text, tprecio.Text, cmbcategoria.SelectedValue,
cmbprov.SelectedValue)
listar()
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button3.Click
buscar(tbuscar.Text)
End Sub
Protected Sub Button4_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button4.Click
listar()
End Sub
End Class
PROGRAMA NUEVO DE LOGEO:
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Public employees As String
Sub ingresar(ByVal u As String, ByVal c As String)
Dim cmd As New SqlCommand
Dim dr As SqlDataReader
With cmd
.CommandType = CommandType.StoredProcedure
.CommandText = "ingreso"
.Parameters.Add("@user", SqlDbType.NVarChar).Value = u
.Parameters.Add("@con", SqlDbType.NVarChar).Value = c
.Connection = cn
cn.Open()
dr = .ExecuteReader
If dr.Read Then
Me.tusuario.Text = dr("lastname")
Me.tcontraseña.Text = dr("firstname")
employees = Me.tusuario.Text
'esta sentencia nos envia a otra pagina
Response.Redirect("modulo.aspx")
Else
Response.Redirect("errorlogin.html")
End If
End With
dr.Close()
cn.Close()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
ingresar(tusuario.Text, tcontraseña.Text)
End Sub
Para el boton cancelar en la propiedad:
OnClientClick = window.close()
PROGRAMA NUEVO: Me permite hacer una consulta por el id del cliente y me
devuelve los resultados en los textbox
PAGINA1
Código:
Consulta: sql
create proc listar
@cod nchar(5)
as
select CUSTOMERID,companyname,
contactname,
city from customers where customerid=@cod
select*from customers
create proc mostrar
@cod nchar(5)
as
select orderid,orderdate,lastname,firstname from (orders
inner join employees on employees.employeeid=orders.employeeid )where
customerid=@cod
select*from employees
select*from orders where customerid='vinet'
codigo: vb.net
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Sub consulta(ByVal c As String)
Dim ds As New DataSet
Dim da As New SqlDataAdapter("listar", cn)
da.SelectCommand.CommandType = 4
da.SelectCommand.Parameters.Add("@cod", SqlDbType.NChar).Value = c
da.Fill(ds, "T")
'estas lineas me muestran los campos en los textbox
If ds.Tables("T").Rows.Count > 0 Then
With ds.Tables("T")
tcliente.Text = .Rows(0)("companyname")
tcontacto.Text = .Rows(0)("contactname")
tciudad.Text = .Rows(0)("city")
End With
End If
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button2.Click
consulta(tcodigo.Text)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
'esta sentencia me permite exportar los datos del tcliente a la pagina
2
Response.Redirect("pagina2.aspx?cliente=" & tcliente.Text)
End Sub
A CONTINUACION ESTA ES LA PAGINA QUE RECIBE LAS INSTRUCCIONES:
PAGINA2
Imports System.Data
Imports System.Data.SqlClient
Partial Class pagina2
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Sub mostrar(ByVal c As String)
Dim ds As New DataSet
Dim da As New SqlDataAdapter("mostrar", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add("@cod", SqlDbType.NChar).Value = c
da.Fill(ds, "cli")
dgvlista.DataSource = ds.Tables("cli")
dgvlista.DataBind()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
'el codigo para recibir el dato se colo siempre en el load dela pagina
Dim co As String
co = Request.QueryString("cliente")
tnombre.Text = co
mostrar(tnombre.Text)
lblm.Text = dgvlista.Rows.Count & " pedidos encontrados"
End Sub
PROGRAMA NUEVO: en este programa vamos a exportar los datos pero por medio de
editar plantilla del grid view tranformando sus campos en hipervínculos
Pagina:LISTACLIENTE.ASPX
Código sql create Proc Listapedido
as
Select Orderid,
Companyname,
Orderdate,Customers.Customerid
From Orders Inner join Customers
On Customers.Customerid=Orders.Customerid
create Proc buscacliente
@cc varchar(6)
as
Select Companyname,Contactname,city
From Customers Where Customers.Customerid=@cc
Imports System.Data
Imports System.Data.SqlClient
Partial Class LISTAPEDIDO
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;Database=northwind;integrated security=yes")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim ds As New DataSet
Dim da As New SqlDataAdapter("listapedido", cn)
With da
.SelectCommand.CommandType = CommandType.StoredProcedure
.Fill(ds, "ped")
Me.GridView1.DataSource = ds.Tables("ped")
Me.GridView1.DataBind()
End With
End Sub
End Class
Pagina: VERCLIENTE.ASPX
Imports System.Data
Imports System.Data.SqlClient
Partial Class vercliente
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;Database=northwind;integrated security=yes")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim cod, nc As String
cod = Request.QueryString("cc")
nc = Request.QueryString("nc")
lblcodigo.Text = cod
lblnombre.Text = nc
Dim ds As New DataSet
Dim da As New SqlDataAdapter("buscacliente", cn)
With da
.SelectCommand.CommandType = CommandType.StoredProcedure
.SelectCommand.Parameters.Add("@cc",
SqlDbType.VarChar).Value = lblcodigo.Text
.Fill(ds, "bus")
Me.GridView1.DataSource = ds.Tables("bus")
Me.GridView1.DataBind()
End With
End Sub
End Class
PROGRAMA NUEVO:
AGREGAR: AGREGAR UNA CLASE CON NOMBRE CLIENTE
CODIGO:
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Public Class cliente
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Public Function listacliente()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("listacliente", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.Fill(ds, "cli")
Return ds.Tables("cli")
End Function
End Class
CODIGO EN LA PAGINA ASPX
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim cliente As New cliente
dgvlista.DataSource = cliente.listacliente
dgvlista.DataBind()
End Sub
End Class
CODIGO: PROC ALMACENADO(SQL)
use nortwind
create proc listacliente
as
select customerid,companyname,city from customers
order by companyname
go
PROGRAMA NUEVO
CODIGO EN VB.NET:
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
End Sub
Public Sub logeo(ByVal u As String, ByVal c As String)
Dim cmd As New SqlCommand
Dim dr As SqlDataReader
With cmd
.CommandType = CommandType.StoredProcedure
.CommandText = "logeo"
.Parameters.Add("@u", SqlDbType.NVarChar).Value = u
.Parameters.Add("@c", SqlDbType.NVarChar).Value = c
.Connection = cn
cn.Open()
.ExecuteNonQuery()
dr = .ExecuteReader
If dr.Read Then
u = dr("lastname")
c = dr("firstname")
Response.Redirect("consultapedido.aspx?cc=" &
tusuario.Text & "")
Else
MsgBox("error de logeo")
End If
End With
dr.Close()
cn.Close()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
logeo(tusuario.Text, tcontraseña.Text)
End Sub
End Class
PAGINA 2:
CONSULTA EN SQL:
create proc logeo
@u nvarchar(20),@c nvarchar(10)
as
select * from employees
where lastname=@u and firstname=@c
go
select*from employees
go
select*from orders
go
create proc consulta1
@cod int
as
select quantity as cantidad,productname as producto,
o.unitprice as precio_uni, 'importe'=(quantity*o.unitprice)
from [order details] o inner join products on
products.productid=o.productid
where orderid=@cod
go
CREATE proc consulta2
@cod int
as
select c.companyname,o.orderdate,'empleado'=e.lastname +' '+
e.firstname from (orders o
inner join customers c on c.customerid=o.customerid)
inner join employees e on e.employeeid=o.employeeid where
orderid=@cod
CODIGO EN VB.NET:
Partial Class consultapedido
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
'ESTA LINEA ME DEVUELVE LA CONSULTA EN EL GRID VIEW
Dim consul As New Class1
dgvlista.DataSource = consul.consulta1(tpedido.Text)
dgvlista.DataBind()
'ESTA LINEA ME DEVUELVE LOS DATOS EN LAS CAJAS DE TEXTO
Dim consul2 As New Class1
consul2.buscar(tpedido.Text)
tcliente.Text = consul2.id_cli
tfecha.Text = consul2.id_fec
templeado.Text = consul2.id_em
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim usu As String
usu = Request.QueryString("cc")
tusuario.Text = usu
End Sub
End Class
CODIGO DE LA CLASE:
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Public Class Class1
Private cli As String : Private fec As String
Private em As String
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Public Function consulta1(ByVal c As Integer)
Dim ds As New DataSet
Dim da As New SqlDataAdapter("consulta1", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add("@cod", SqlDbType.Int).Value = c
da.Fill(ds, "ord")
Return ds.Tables("ord")
End Function
Public Property id_cli()
Get
id_cli = cli
End Get
Set(ByVal value)
cli = value
End Set
End Property
Public Property id_fec()
Get
id_fec = fec
End Get
Set(ByVal value)
fec = value
End Set
End Property
Public Property id_em()
Get
id_em = em
End Get
Set(ByVal value)
em = value
End Set
End Property
Public Sub buscar(ByVal c As Integer)
Try
Dim cmd As New SqlCommand
Dim dr As SqlDataReader
With cmd
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "consulta2"
.Parameters.Add("@cod", SqlDbType.Int).Value = c
cn.Open()
dr = .ExecuteReader
If dr.HasRows Then
dr.Read()
cli = dr("companyname")
fec = dr("orderdate")
em = dr("empleado")
Else
MsgBox("Codigo equivocado")
End If
End With
dr.Close()
cn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
Programa nuevo: en este programa vamos a cargar un archivo xml y vamos agenerar un
archivo xml.
Agregar nuevo elemento: archivo xml
Código en archivo xml: este código es escrito manualmente <?xml version="1.0" encoding="utf-8" ?>
<alumno>
<registro>
<codigo>101</codigo>
<nombre>juan</nombre>
<apellido>perez</apellido>
</registro>
<registro>
<codigo>102</codigo>
<nombre>ana</nombre>
<apellido>lopez</apellido>
</registro>
<registro>
<codigo>103</codigo>
<nombre>jose</nombre>
<apellido>mendoza</apellido>
</registro>
<registro>
<codigo>104</codigo>
<nombre>maria</nombre>
<apellido>ortega</apellido>
</registro>
<registro>
<codigo>105</codigo>
<nombre>jesus alberto</nombre>
<apellido>torres</apellido>
</registro>
</alumno>
Generar archivo xml apartir de una tabla cargada en el grid view:
Insertar archivo xml
Web forms
Código en vb.net: Imports System.Data
Imports System.Data.SqlClient
Partial Class Default2
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Dim ds As New DataSet
Sub mostrar()
Dim da As New SqlDataAdapter("mostrarpro", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.Fill(ds, "pro")
dgvlista.DataSource = ds.Tables("pro")
dgvlista.DataBind()
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
mostrar()
End Sub
Protected Sub btngenerar_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btngenerar.Click
'esta linea me genera un archivo xml que se puede abrir
directamnete desde excel
Dim archivo As String = "c:\misproductos.xml"
ds.Tables(0).WriteXml(archivo)
End Sub
End Class
Procedimeinto en sql para llenar el grid view:
select*from products
create proc mostrarpro
as
select productid as codigo,productname as nombre,unitprice as precio,
UnitsInStock as stock from products
Programa usando tablas temporales:
Codigo en el global asax
<%@ Application Language="VB" %>
<%@ Import Namespace ="System.data" %>
<script runat="server">
Dim dt As New DataTable
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Código que se ejecuta cuando se inicia una nueva sesión
Dim contador As Integer = 0
Session("cont") = contador
'crear columnas
Dim dc0 As New DataColumn("Item", System.Type.GetType("System.Int16"))
Dim dc1 As New DataColumn("Dni", System.Type.GetType("System.String"))
Dim dc2 As New DataColumn("Nombre",
System.Type.GetType("System.String"))
Dim dc3 As New DataColumn("Apelli",
System.Type.GetType("System.String"))
Dim dc4 As New DataColumn("Sueld",
System.Type.GetType("System.Decimal"))
'adicionar columas al dt
dt.Columns.Clear()
dt.Columns.Add(dc0)
dt.Columns.Add(dc1)
dt.Columns.Add(dc2)
dt.Columns.Add(dc3)
dt.Columns.Add(dc4)
Session("tabla") = dt
End Sub
< /script>
Codigo en el vb.net:
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
Dim a As Integer
Dim dt2 As New DataTable
Dim cn As New
SqlConnection("server=.;database=northwind;integrated security=yes")
Sub limpiarcajas()
Me.txtnom.Text = ""
Me.txtsueldo.Text = ""
Me.txtape.Text = ""
Me.txtdni.Text = ""
End Sub
Function sumaSueldo() As Single
Dim s As Single = 0
Dim i As Integer
For i = 0 To Me.GridView1.Rows.Count - 1
s = s + Me.GridView1.Rows(i).Cells(4).Text
Next
Return s
End Function
'codigo pra renumerar el grid view al eliminar una fila
Sub renumerarItem()
Dim i As Integer
For i = 0 To dt2.Rows.Count - 1
Dim dr As DataRow = dt2.Rows(i)
dr.BeginEdit()
dr("Item") = i + 1
dr.EndEdit()
Next
Session("tabla") = dt2
Session("contador") = dt2.Rows.Count
End Sub
'codigo para grabar datos en conjunto
Sub grabartemporal()
Try
Dim tabla As New DataTable
tabla = Session("dt2")
Dim i As Integer
For i = 0 To dt2.Rows.Count - 1
Dim cmd As New SqlCommand
With cmd
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "agregarempleado"
.Parameters.AddWithValue("@dni", dt2.Rows(i)("dni"))
.Parameters.AddWithValue("@nombre", dt2.Rows(i)("nombre"))
.Parameters.AddWithValue("@apellido", dt2.Rows(i)("apellido"))
.Parameters.AddWithValue("@sueldo", dt2.Rows(i)("sueldo"))
cn.Open()
.ExecuteNonQuery()
cn.Close()
End With
Next
'esta linea me elimina los registros en memoria del dt2
dt2.Rows.Clear()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
'este codigo me cargo los datos en el grid view
dt2 = Session("tabla")
Me.GridView1.DataSource = dt2
Me.GridView1.DataBind()
End Sub
Protected Sub btnagregar_Click(ByVal sender As Object, ByVal e As
Dim conta As Integer
conta = Session("contador")
Try
conta += 1
dt2 = Session("tabla")
Dim dr As DataRow = dt2.NewRow
dr("Item") = conta
dr("dni") = txtdni.Text
dr("nombre") = txtnom.Text
dr("apellido") = txtape.Text
dr("Sueldo") = CSng(txtsueldo.Text)
dt2.Rows.Add(dr)
Session("tabla") = dt2
Me.GridView1.DataSource = dt2
Me.GridView1.DataBind()
Session("contador") = conta
limpiarcajas()
lblacumulado.Text = "El sueldo Acumulado es: " & sumaSueldo()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e
dt2.Rows.RemoveAt(e.RowIndex)
renumerarItem()
Session("tabla") = dt2
dt2 = Session("tabla")
Me.GridView1.DataSource = dt2
Me.GridView1.DataBind()
lblacumulado.Text = "El sueldo Acumulado es: " & sumaSueldo()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
grabartemporal()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As
'con esta linea borramos la memoria del datatable
dt2.Rows.Clear()
End Sub
End Class
Programa nuevo: usaremos tabla temporal usando el datatable y
cargandolo al grid view
Agregar nuevo elemento: global.asax
Codigo en el global asax:
<%@ Application Language="VB" %>
<%@ Import Namespace ="System.Data" %>
<script runat="server">
'declaramos una variable al datatable
Dim dt As New DataTable
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' Código que se ejecuta cuando se inicia una nueva sesión
Dim contador As Integer = 0
Session("cont") = contador
'crear columnas
Dim dc0 As New DataColumn("item", System.Type.GetType("System.Int16"))
Dim dc1 As New DataColumn("proveedor",
System.Type.GetType("System.String"))
Dim dc2 As New DataColumn("personal",
System.Type.GetType("System.String"))
Dim dc3 As New DataColumn("concepto",
System.Type.GetType("System.String"))
Dim dc4 As New DataColumn("cliente",
System.Type.GetType("System.String"))
Dim dc5 As New DataColumn("cantidad",
System.Type.GetType("System.Int16"))
Dim dc6 As New DataColumn("precio",
System.Type.GetType("System.Decimal"))
Dim dc7 As New DataColumn("fecha",
System.Type.GetType("System.DateTime"))
Dim dc8 As New DataColumn("documento",
System.Type.GetType("System.String"))
Dim dc9 As New DataColumn("numero",
System.Type.GetType("System.Int16"))
Dim dc10 As New DataColumn("igv",
System.Type.GetType("System.Decimal"))
Dim dc11 As New DataColumn("importe",
System.Type.GetType("System.Decimal"))
'adicionar columas al dt
dt.Columns.Clear()
dt.Columns.Add(dc0)
dt.Columns.Add(dc1)
dt.Columns.Add(dc2)
dt.Columns.Add(dc3)
dt.Columns.Add(dc4)
dt.Columns.Add(dc5)
dt.Columns.Add(dc6)
dt.Columns.Add(dc7)
dt.Columns.Add(dc8)
dt.Columns.Add(dc9)
dt.Columns.Add(dc10)
dt.Columns.Add(dc11)
Session("tabla") = dt
End Sub
</script>
codigo en el vb.net: para agregar datos al grid view y guardar los
datos en conjunto en la tabla temporal
Imports System.Data
Imports System.Data.SqlClient
Partial Class gastos
Inherits System.Web.UI.Page
Dim cn As New
SqlConnection("server=.;database=bd_vehiculos;integrated
security=yes")
Dim c As Integer = 0
Dim igv As Double = 0
'esta linea declara un variable a usar en el web form muy aparte
del que ya usamos en el global
Dim dt2 As New DataTable
'estos metodo nos van a cargar datos en los dropdaw
Sub llenarprov()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select*from proveedor", cn)
da.Fill(ds, "dis")
With cmbprov
.DataSource = ds.Tables("dis")
.DataTextField = "razon_social"
.DataValueField = "id_proveedor"
.DataBind()
End With
End Sub
Sub llenarper()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select id_personal,cadena= nombres + '
' + apellidos from personal", cn)
da.Fill(ds, "dis")
With cmbper
.DataSource = ds.Tables("dis")
.DataTextField = "cadena"
.DataValueField = "id_personal"
.DataBind()
End With
End Sub
Sub llenarcli()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select * from cliente", cn)
da.Fill(ds, "dis")
With cmbcliente
.DataSource = ds.Tables("dis")
.DataTextField = "nombres"
.DataValueField = "id_cliente"
.DataBind()
End With
End Sub
Sub llenarcon()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select * from conceptos", cn)
da.Fill(ds, "con")
With cmbconcepto
.DataSource = ds.Tables("con")
.DataTextField = "descripcion"
.DataValueField = "id_concepto"
.DataBind()
End With
End Sub
Sub llenardoc()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select * from documento", cn)
da.Fill(ds, "doc")
With cmbdoc
.DataSource = ds.Tables("doc")
.DataTextField = "tipo"
.DataValueField = "id_doc"
.DataBind()
End With
End Sub
Sub mcodigo()
Dim ds As New DataSet
Dim da As New SqlDataAdapter("select * from gastos", cn)
da.Fill(ds, "doc")
With cmbgasto
.DataSource = ds.Tables("doc")
.DataTextField = "id_documento"
.DataValueField = "id_documento"
.DataBind()
End With
End Sub
'esta funcion me devuelve la suma del importe de la columna 11 del
grid view
Function sumaSueldo() As Single
Dim s As Single = 0
Dim i As Integer
For i = 0 To Me.dgvlista.Rows.Count - 1
s = s + Me.dgvlista.Rows(i).Cells(11).Text
Next
Return s
End Function
'esta funcion me devuelve la suma del importe de la columna 11 +
el igv calculado
Function sumaimpor() As Single
Dim m As Single = 0
Dim i As Integer
For i = 0 To Me.dgvlista.Rows.Count - 1
m = m + Me.dgvlista.Rows(i).Cells(11).Text + tigv.Text
Next
Return m
End Function
'esta funcion me suma los igv calculados
Function sumaigv() As Single
Dim t As Single = 0
Dim i As Integer
For i = 0 To Me.dgvlista.Rows.Count - 1
t = t + tigv.Text
Next
Return t
End Function
'esta funcion me resta el saldo de un cliente que esta en una caja
de texto
Function ressue() As Single
Dim r As Single = tsaldoc.Text
Dim i As Integer
For i = 0 To Me.dgvlista.Rows.Count - 1
r = r - timporte.Text
Next
Return r
End Function
' este codigo me guarda los datos temporales que estan en el grid
view ya cargados ala base de datos
Sub grabartemporal()
Try
Dim tabla As New DataTable
tabla = Session("dt2")
Dim i As Integer
For i = 0 To dt2.Rows.Count - 1
Dim cmd As New SqlCommand
With cmd
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "guardargastos"
.Parameters.AddWithValue("@cod",
dt2.Rows(i)("item"))
.Parameters.AddWithValue("@pro", dt2.Rows(i)("proveedor"))
.Parameters.AddWithValue("@per", dt2.Rows(i)("personal"))
.Parameters.AddWithValue("@ccon", dt2.Rows(i)("concepto"))
.Parameters.AddWithValue("@cli", dt2.Rows(i)("cliente"))
.Parameters.AddWithValue("@can", dt2.Rows(i)("cantidad"))
.Parameters.AddWithValue("@pre", dt2.Rows(i)("precio"))
.Parameters.AddWithValue("@fec", dt2.Rows(i)("fecha"))
.Parameters.AddWithValue("@tip", dt2.Rows(i)("documento"))
.Parameters.AddWithValue("@num", dt2.Rows(i)("numero"))
.Parameters.AddWithValue("@igv", dt2.Rows(i)("igv"))
.Parameters.AddWithValue("@im", dt2.Rows(i)("importe"))
cn.Open()
.ExecuteNonQuery()
cn.Close()
End With
Next
'esta linea de codigo me limpia el registro temporal del
datatable
dt2.Rows.Clear()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
Dim f As Date = Today
tfecha.Text = f
If Not Page.IsPostBack Then
llenarprov()
llenarper()
llenarcli()
llenarcon()
llenardoc()
mcodigo()
End If
'me muestra los datos en el grid view
dt2 = Session("tabla")
Me.dgvlista.DataSource = dt2
Me.dgvlista.DataBind()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button2.Click
‘este codigo me condiciona para calcular el igv si es que el combo
esta en factura o boleta( no me calculara el igv )
EL COMBODOC TIENE COMO ITEMS: FACTURA(0),BOLETA(1)
Try
If cmbdoc.SelectedIndex = 0 Then
c = tcantidad.Text * tprecio.Text
igv = c * 0.19
timporte.Text = c
tigv.Text = igv
Else
c = tcantidad.Text * tprecio.Text
igv = 0
timporte.Text = c
tigv.Text = igv
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Button6.Enabled = True
End Sub
Protected Sub Bguardar_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button3.Click
grabartemporal()
Protected Sub Bagregar_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button6.Click
'estos procedimientos me agregan los datos al grid view
Button3.Enabled = True
Dim conta As Integer
conta = Session("contador")
Try
conta += 1
dt2 = Session("tabla")
Dim dr As DataRow = dt2.NewRow
dr("item") = cmbgasto.Items.Count + dgvlista.Rows.Count +
1
dr("proveedor") = cmbprov.SelectedValue
dr("personal") = cmbper.SelectedValue
dr("concepto") = cmbconcepto.SelectedValue
dr("cliente") = cmbcliente.SelectedValue
dr("cantidad") = tcantidad.Text
dr("precio") = Me.tprecio.Text
dr("fecha") = tfecha.Text
dr("documento") = cmbdoc.SelectedValue
dr("numero") = tnumero.Text
dr("igv") = tigv.Text
dr("importe") = CSng(timporte.Text) - CSng(tigv.Text)
If dr("importe") > tsaldoc.Text Then
Button2.Enabled = False
MsgBox("Importe es mayor al saldo del cliente")
Else
dt2.Rows.Add(dr)
Session("tabla") = dt2
Me.dgvlista.DataSource = dt2
Me.dgvlista.DataBind()
Session("contador") = conta
el resultado delas funciones ya mostradas nos devolveran los datos
en sus cajas de texto
tneto.Text = sumaSueldo()
tsaldoc.Text = ressue()
Button2.Enabled = True
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Protected Sub dgvlista_RowDeleting(ByVal sender As Object, ByVal e
As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles
dgvlista.RowDeleting
'este codigo esta hecho en el evento rowdeleting y los va
borrando conforme uno quiera y va restandole el resultado del sueldo
neto
dt2.Rows.RemoveAt(e.RowIndex)
Session("tabla") = dt2
dt2 = Session("tabla")
Me.dgvlista.DataSource = dt2
Me.dgvlista.DataBind()
tneto.Text = sumaSueldo()
End Sub
Protected Sub Button7_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button7.Click
dt2.Rows.Clear()
End Sub
Protected Sub Button8_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button8.Click
dt2.Rows.Clear()
End Sub
End Class
Programa nuevo: para guardar ,eliminar ,actualizar y buscar mediante
procedimientos hechos en sql y usados en clases
Codigo de la clase agregada desde agregar nuevo elemento:
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Public Class class1
Private cod As String : Private nom As String : Private ape As
String
Private sex As String : Private dni As String
Private car As Integer : Private dis As Integer
Dim cn As New
SqlConnection("server=.;database=bd_vehiculos;integrated
security=yes")
Public Property id_per()
Get
id_per = cod
End Get
Set(ByVal value)
cod = value
End Set
End Property
Public Property nombre()
Get
nombre = nom
End Get
Set(ByVal value)
nom = value
End Set
End Property
Public Property apellido()
Get
apellido = ape
End Get
Set(ByVal value)
ape = value
End Set
End Property
Public Property sexo()
Get
sexo = sex
End Get
Set(ByVal value)
sex = value
End Set
End Property
Public Property dnip()
Get
dnip = dni
End Get
Set(ByVal value)
dni = value
End Set
End Property
Public Property cargo()
Get
cargo = car
End Get
Set(ByVal value)
car = value
End Set
End Property
Public Property distrito()
Get
distrito = dis
End Get
Set(ByVal value)
dis = value
End Set
End Property
* Public Sub guardar()
Try
Dim comando As New SqlCommand
With comando
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "guardar_personal"
.Parameters.Add("@cod", SqlDbType.Char).Value = id_per
.Parameters.Add("@nom", SqlDbType.NVarChar).Value =
nombre
.Parameters.Add("@ape", SqlDbType.NVarChar).Value =
apellido
.Parameters.Add("@sex", SqlDbType.Char).Value = sexo
.Parameters.Add("@dni", SqlDbType.Char).Value = dnip
.Parameters.Add("@cc", SqlDbType.Int).Value = cargo
.Parameters.Add("@cd", SqlDbType.Int).Value = distrito
cn.Open()
.ExecuteNonQuery()
cn.Close()
End With
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
* Public Sub eliminar()
Try
Dim comando As New SqlCommand
With comando
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "eliminar_personal"
.Parameters.Add("@cod", SqlDbType.Char).Value = id_per
.Parameters.Add("@nom", SqlDbType.NVarChar).Value =
nombre
.Parameters.Add("@ape", SqlDbType.NVarChar).Value =
apellido
.Parameters.Add("@sex", SqlDbType.Char).Value = sexo
.Parameters.Add("@dni", SqlDbType.Char).Value = dnip
.Parameters.Add("@cc", SqlDbType.Int).Value = cargo
.Parameters.Add("@cd", SqlDbType.Int).Value = distrito
cn.Open()
.ExecuteNonQuery()
cn.Close()
End With
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
* Public Sub actualizar()
Try
Dim comando As New SqlCommand
With comando
.Connection = cn
.CommandType = CommandType.StoredProcedure
.CommandText = "actualizar_personal"
.Parameters.Add("@cod", SqlDbType.Char).Value = id_per
.Parameters.Add("@nom", SqlDbType.NVarChar).Value = nombre
.Parameters.Add("@ape", SqlDbType.NVarChar).Value =
apellido
.Parameters.Add("@sex", SqlDbType.Char).Value = sexo
.Parameters.Add("@dni", SqlDbType.Char).Value = dnip
.Parameters.Add("@cc", SqlDbType.Int).Value = cargo
.Parameters.Add("@cd", SqlDbType.Int).Value = distrito
cn.Open()
.ExecuteNonQuery()
cn.Close()
End With
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
* Public Sub buscar(ByVal codi As String)
Try
Dim ds As New DataSet
Dim da As New SqlDataAdapter("buscar_personal", cn)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add("@cod", SqlDbType.Char).Value =
codi
da.Fill(ds, "per")
If ds.Tables("per").Rows.Count > 0 Then
With ds.Tables("per")
nombre = .Rows(0)("nombres")
apellido = .Rows(0)("apellidos")
sexo = .Rows(0)("sexo")
dnip = .Rows(0)("dni")
cargo = .Rows(0)("id_cargo")
distrito = .Rows(0)("id_distrito")
End With
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
Codigo para llamar alas clases en el web form:
Partial Class personal
Inherits System.Web.UI.Page
Sub limpiar()
tcodigo.Text = ""
tnombre.Text = ""
tapellido.Text = ""
tdni.Text = ""
tcodigo.Focus()
End Sub
Dim i As Integer = 0
Protected Sub Bguardar_Click(ByVal sender As Object, ByVal e As
If Me.tapellido.Text = "" _
Or Me.tdni.Text = "" Then
MsgBox("Llene los campos que faltan")
Else
Dim oguarda As New class1
With oguarda
.id_per = Microsoft.VisualBasic.Left(tnombre.Text, 3)
.nombre = Me.tnombre.Text
.apellido = Me.tapellido.Text
.sexo = Me.cmbsexo.SelectedValue
.dnip = Me.tdni.Text
.cargo = Me.cmbcargo.SelectedValue
.distrito = Me.cmbdistrito.SelectedValue
.guardar()
End With
limpiar()
End If
Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
'codigo para buscar
Dim obusca As New class1
obusca.buscar(tcodigo.Text)
Me.tnombre.Text = obusca.nombre
Me.tapellido.Text = obusca.apellido
Me.cmbsexo.SelectedValue = obusca.sexo
Me.tdni.Text = obusca.dnip
Me.cmbcargo.SelectedValue = obusca.cargo
Me.cmbdistrito.SelectedValue = obusca.distrito
End Sub
Protected Sub Button4_Click1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button4.Click
'codigo para eliminar
Dim oeliminar As New class1
With oeliminar
.id_per = Me.tcodigo.Text
.nombre = Me.tnombre.Text
.apellido = Me.tapellido.Text
.sexo = Me.cmbsexo.SelectedValue
.dnip = Me.tdni.Text
.cargo = Me.cmbcargo.SelectedValue
.distrito = Me.cmbdistrito.SelectedValue
.eliminar()
End With
limpiar()
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button3.Click
'codigo para actualizar
Dim oactualizar As New class1
With oactualizar
.id_per = Me.tcodigo.Text
.nombre = Me.tnombre.Text
.apellido = Me.tapellido.Text
.sexo = Me.cmbsexo.SelectedValue
.dnip = Me.tdni.Text
.cargo = Me.cmbcargo.SelectedValue
.distrito = Me.cmbdistrito.SelectedValue
.actualizar()
End With
End Sub
Protected Sub Button5_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button5.Click
limpiar()
End Sub
End Class