Вы находитесь на странице: 1из 33

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

Insertar archivo xml


Web forms

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:
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

Вам также может понравиться