Académique Documents
Professionnel Documents
Culture Documents
En Visual Basic identificadores son conjuntos de letras y/o numeros que se utilizan para
simbolizar todos los elementos que en un programa son definibles por el usuario
(programador o ingeniero de software) del mismo como son las variables donde se
almacenan datos, funciones( pequenos modulos con codigo), etiquetas, clases, objetos,
etc.
En Visual Basic Net una variable se define como un identificador que se utiliza para
almacenar todos los datos generados durante la ejecucion de un programa.
En Visual Basic Net a toda variable que se use en un programa, se le debe asociar
(generalmente al principio del programa) un tipo de dato especifico.
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al
momento de ejecucion del programa y a lo largo de toda la vida util del propio
programa.
Tipo Rango
BYTE 0-255
INTEGER(%) +-2,147,483,698
SINGLE(!) 3.4E+-38(7 DECIMALES)
DOUBLE(#) 1.8E+308(16 DECIMALES)
CURRENCY 15 DIG IZQ 4 DIG DEECHA
STRING($) 2 BILLONES CHARS
BOOLEAN TRUE, FALSE
DATE FECHA
VARIANT TODOS LOS TIPOS y mas usado en este curso
Recordar Tambien que en Visual Basic Net toda variable usada en un programa se
debera declarar al principio del programa el formato de declaracion más sencillo es:
Observar último caso de ciudad asi de esta manera se consigue una string de tamano
definido.
ALFA=”3.1416”
Como se observa del ejemplo anterior, se puede dar en algun momento convertir la
string ALFA a su valor numerico, para resolver este problema se deberan usar las
siguientes funciones de conversion numerica que proporciona visual basic .
ALFA=”3.1416”
BETA=CINT(ALFA)
En Visual Basic Net un operador es un simbolo especial que indica al compilador que
debe efectuar una operacion matematica o logica.
Operador Operacion
+ Suma
- Resta
* Multiplicacion
/ Division Flotante
\ Division Entera
^ Potencia
MOD Modulo
a) Primero son redondeados al entero más cercano (byte, integer, long) b) Al final
vbasic trunca la parte residual.
= 5^8/3
= 9^1/2
En Visual Basic el operador ( MOD ) devuelve el residuo entero de una division entre
enteros, ejemplo:
alfa = 23 MOD 4;
Otro ejemplo;
1.-
2.-
3.-
UNIDAD 1: VISUAL BASIC ELEMENTOS BASICOS
Ejemplos:
a) 2 + 3 * 4 = 20 (incorrecto)
2 + 3 * 4 = 14 (correcto)
b) si calif1=60 y calif2=80
promedio=calif1 + calif2/2
En Visual Basic recordar siempre, que antes de plantear una formula en un programa se
debera evaluar contra el siguiente:
Orden de operaciones:
1.- Parentesis
5.- Dos o más de la misma jerarquia u orden, entonces resolver de izquierda a derecha
Nota: Tampoco es bueno usar parentesis de mas en una operacion, esto solo indica que
no se evaluo bien la formula, como en el siguiente ejemplo:
Aqui los parentesis estan de mas porque por orden de operaciones, multiplicacion y
division tienen la misma jerarquia y entonces se resuelven de izquierda a derecha en
otras palabras en visual basic net ni que falten parentesis ni que sobren parentesis visual
basic net
En Visual BAsic Net un objeto puede definirse como cualquier cosa, ente o entidad
fisica o logica de informacion.
En este sentido todos los elementos materiales o inmateriales pueden clasificarse como
objetos.
Las propiedades más generales son forma, color, tamano, peso, etc., pero ya en
particular:
Asi como las propiedades son el ser (que es) del objeto, los metodos son el hacer (que
hacer) del objeto.
ejemplo de metodos:
c) Eventos: Es la relacion (de varias maneras) que se puede dar entre dos objetos ya
sean de la misma o diferente clase.
Un evento se manifiesta como un interaccion entre dos objetos, en general al momento
de la relacion al mismo tiempo se dara una reaccion o respuesta por parte de los dos
objetos que se manifiestan como una serie, cadena o conjuntos de metodos propios que
se activan o disparan, ejemplo:
Pero en general tanto las formas como los controles no dejan de ser objetos en
programacion de visual basic y por tanto tienen sus propiedades, metodos y estan
sujetos a eventos.
En visual Basic Net recordar ademas que un conjunto de objetos que comparten o
contienen caracteristicas similares forman la llamada CLASE.
Para entender ASP NET, tenemos que entender algunas cosas elementales de esta
tecnologia de MicroSoft
Este programa que por cierto tiene por extension aspx (ejemplo prog15 aspx) es un
conjunto de objetos que pueden provenir de varias fuentes distintas, las mas comunes
son:
A) Objetos HTML - Son los objetos mas elementales que puede contener o construirse
en cualquier pagina o forma html en internet, por ejemplo los input text, input submits,
etc, (recordar que como objetos tienen sus propiedades y metodos que hay que cargar o
programar ver apendice a final del capitulo).
F) Objetos NET - Nuevos objetos que facilitan aun mas la construccion de programas
en internet, de momento entender que son una combinacion de asp-activex.
Sin embargo recordar que todos estos objetos de distinta fuente deberan ser
manipulados por algun lenguaje de programacion, es mediante instrucciones en este
lenguaje que se puede cargar propiedades o activar metodos o programar eventos.
Los lenguajes basicos que microsoft incluyo en su primera version de ASP, son los
llamados LENGUAJES SCRIPTS, y los mas comunes fueron al principio
VisualBasicScript, JavaScript y por esfuerzos de personas y companias muy
responsables PERLSCRIPT y actualmente JSCRIPT.
En enero del 2002 microsoft libero su nueva tecnologia que denomino ASP NET que a
diferencia de los 7 objetos del asp viejo, incorpora mas de 3700 objetos y a diferencia
de los tres lenguajes scripts que soportaba el asp viejo, asp.net soporta muchos
lenguajes de programacion incluyendo cobol (estarse pendiente de
www.programacionfacil.com que pronto incluira muchos cursos de asp.net en muchos
lenguajes de programacion diferentes)
Tomar nota que el modelo de programacion que vamos a seguir, indica que un
programa de visual basic net es un conjunto de objetos provenientes de cualquier
fuente ( html, activex, asp, ado, dom, asp.net) y se utiliza el lenguaje VBASIC NET
para programar sus propiedades, metodos y eventos.
<HTML>
<FORM RUNAT=SERVER>
</FORM>
SALUDOS Y DESPEDIDA
</HTML>
MESES.VALUE=EDAD.VALUE * 12
END SUB
</SCRIPT>
Notas:
3.- Para crear este programa deberan usar el mejor editor de programas del mundo el
NOTEPAD o el WORDPAD DE WINDOWS cargarlo, escribir el programa y grabarlo
como prog1.aspx, tener mucho cuidado que la extencion sea .aspx, notepad y wordpad
tienen la costumbre de agregarles aparte la extension .txt o .doc, es decir si el programa
queda grabado como prog1.aspx.txt, DICHO PROGRAMA NO SE VA A
EJECUTAR, revisarlo desde una consola desde el MSDOS con una orden DIR y si es
necesario usar RENAME.
4.- La primera parte del programa ( el codigo html) empieza creando un objeto o
componente FORM(tambien de html) que contendra todos los demas objetos o
componentes de html, luego se crean dos objetos tambien provenientes de html (los
input text) objetos o componentes que se especializan en manipular datos, es decir se
usan para capturar o desplegar datos.
5.- Despues se crea otro objeto o componente HTML( el input button) que se puede
definir como el objeto o componente de orden o comando, es decir en su evento
onclick(cuando el usuario hace un click dentro de el) se activa la forma y el metodo en
vbnet asociado a ella, observar y aprender y respetar el formato de como asociarle
codigo en vbnet al evento onclick del componente botton.
6.- Hasta esta parte del programa, se esta manipulando puros objetos html (form, input
text, input button) al finalizar este capitulo viene un apendice con todos los objetos html
incluyendo sus propiedades y sus metodos, favor de revisarlos y estudiarlos.
7.- Ya que estan de regreso de analizar los objetos HTML, los mas observadores de
ustedes notaran que en todos estos objetos que estan en prog1.aspx, usan una serie de
propiedades que en el apendice no se muestran, esta es la primera aportacion que la
tecnologia Microsoft.Net agrega a este modelo de programacion.
8.- El problema es que los objetos HTML no tienen suficientes propiedades y metodos
para resolver muchos problemas de programacion, por esta razon Microsoft Net crea
unas cubiertas?(WRAPPERS) para cada uno de ellos, en su libreria
System.Web.UI.Control, o coleccion HTMLCONTROLS estos nuevos objetos o
controles son:
Para los observadores y estudiosos, notar que hay un objeto correspondiente para cada
objeto HTML pero tambien EXISTEN ALGUNOS NUEVOS QUE FACILITAN LA
CONSTRUCCION DE PAGINAS o FORMAS aspx.
Recordar tambien que estos controles aceptan o pueden usar todas las propiedades
originales de los objetos HTML y algunas nuevas propiedades y metodos como se
observa en el programa ejemplo.
10.- Recordar respetar todas las ID de los objetos y las variables que se hayan
declarado.
11.- La primera sopresa agradable comparada con los otros modelos de programacion es
que de los objetos htmlcontrols se pueden manipular directamente sus propiedades y
metodos, es decir ya no hay necesidad ( aunque se puede) de usar los objetos
tradicionales de ASP.
12.- Como se observa en el programa, se pueden manipular directamente los objetos
HTML, y con un solo renglon de instruccion en vbnet se puede resolver el problema
completo.
13.- Para ejecutar este programa solo basta crearlo con el wordpad o notepad, grabarlo
como prog1.aspx y para verlo en ejecucion:
El programa en ejecucion:
1.- Construir programas visual basic net para la primera mitad de los problemas del
modelo de solucion.
Como se puede apreciar existen muchos nuevos objetos de mucha utilidad para la
construccion de sistemas de informacion, todos estos objetos tienen sus propiedades
especificas, sin embargo muchos de ellos comparten las siguientes propiedades:
PROPIEDAD DESCRIPCION
BackColor Carga o lee el color de background
BorderColor Carga o lee el color del marco(border)
BorderStyle Carga o lee el estilo del marco
BorderWidth Carga o lee el tamano del marco
Font Carga o lee el font
ForeColor Carga o lee el color del foreground
Height Carga o lee la altura del control
ID Carga o lee el identificador del control
TabIndex Carga o lee el tab index
ToolTip Carga o lee el tooltip del control
Visible Carga o lee su estado visible
Width Carga o lee la anchura del control
Interesante verdad?
Prog2.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
<SCRIPT LANGUAGE=VB RUNAT=SERVER>
MESES1.TEXT=EDAD.TEXT * 12
MESES2.TEXT=EDAD.TEXT * 12
END SUB
</SCRIPT>
Se esta usando objetos asp net TEXTBOX y se esta procesando su propiedad TEXT, de
manera muy similar a lo que se hizo con la propiedad VALUE de objetos HTML.
Se puede usar otro objeto TEXTBOX para desplegar el resultado, pero se quiere
demostrar en este programa, los otros dos tipos de tipos de objetos asp net de
despliegue, ellos son LABEL y LITERAL, su diferencia principal con el objeto
TEXTBOX es que estos dos ultimos no permiten capturar datos en ellos.
Considerar la pagina como una sola forma o ventana empotrada en el browser esta
forma contiene tres objetos, controles o componentes provenientes de
WEBCONTROLS (TEXTBOXS, LABEL, BUTTON ), este ultimo control ( button) se
usa para activar el codigo o script del programa.
Observar que se debera usar el tag <ASP: WEBCONTROLS PROPIEDADES /> para
poner cada webcontrol en la pagina.
Como se observa todos estos controles son objetos y por tanto tienen propiedades y
metodos que son los que usamos dentro del programa observar el formato para
procesarlos, es decir: objeto.propiedad o metodo.
Se muestran dos tipos de controles para desplegar datos, textos o mensajes estaticos,
ellos son LABEL y LITERAL(la diferencia entre ellos revisar en el apendice pero en
general tiene mas y mejores propiedades LABEL), todos estos controles incluyendo
TEXTBOX estan usando su propiedad TEXT para procesar los datos, del control
BUTTON estamos usando su evento onclick, para pegarle el proceso u operacion.
Observar que lo primero que hace vbnet, es detectar el evento onclick del boton y
realizar directamente las operaciones con los objetos webcontrol.
Para ejecutarlo:
1.- Solo subir prog2 aspx a tu sitio web en LUNARPAGES y para ejecutarlo desde una
maquina cliente, solo usar la siguiente direccion:
http://LUNARPAGES/tusitio/prog2.aspx
El programa en ejecucion:
1.- Construir scripts en visual basic net para la segunda mitad de los problemas que se
vieron en el tema de modelo de solucion, usar labels en unos y literal en otros.
Tercer modelo visual basic net de script, PARA ESTE MODELO SE SEPARAN LA
PARTE DE INTERFASE CON EL USUARIO ( LA FORMA Y SUS CONTROLES) Y
LA PARTE PROGRAMATICA en programas o archivos diferentes.
Prog3 aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM><BR>
</HTML>
notas:
1.- Comienza con una directiva o instruccion PAGE que en principio es el compilador
de paginas de ASP NET y su atributo INHERITS le indica a dicho compilador que use
prog3.aspx y el codigo fuente o SouRCe que esta en el archvivo llamado PROG3.VB
DIRECTIVE DESCRIPCION
@ Page Define atributos usados para compilar paginas ASP.NET
@ Control Define atributos usados para compilar controles de usuarios
@ Import Importa NAMESPACES desde la libreria de clases de .NET
Define alias, tags, y otros parametros para constroles de usuarios y
@ Register
normales
@ Assembly Identifica otros archivos ( assemblies) para enlazar a esta pagina
@ OutputCache Define parametros para el cache de salida de HTML
2.- El resto de instrucciones son las normales de asp net vistas en el tema anterior.
Prog3.vb
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
MESES.TEXT=EDAD.TEXT * 12
END SUB
END CLASS
notas:
1.- Este programa empieza importando o usando las librerias de clases apropiadas para
este problema:
SYSTEM:= Libreria mas generica de microsoft net, incluye todas las definiciones del
lenguaje.
2.- Empieza el programa .VB creando y enlazando los objetos que se tienen en PROG3
ASPX y observar que su ID es el mismo tanto en prog3.aspx como en prog3.vb
3.- Un programa .VB debe ser una clase, en este caso la clase se llama PROG3(respetar
mayusculas) y es de tipo o se deriva de la clase PAGE.
3.- Toda clase debe llevar metodos ( de preferencia MAIN()), sin embargo para este
caso basta crear el metodo onclick del componente button de aspx usando el nombre del
este evento(CALCULO).
4.- Este metodo lleva el codigo normal de visual basic net que ya se analizo en los dos
temas anteriores, CON LA EXCEPCION DE QUE AHORA USAMOS DOS
TEXTBOXS, EN LUGAR DE UN LABEL PERO ES INDISTINTO USAR TEXTBOX
O LABEL PArA DESPLIEGUE, AUNQUE ES MAS CORRECTO USAR LABEL’S
PARA DESPLIEGUES.
6.- Recordar que cuando un cliente solicita este tipo de aspx el servidor enlaza, compila
y ejecuta los dos programas a la vez y le manda el resultado al browser del cliente.
1.- Construir programas visual basic (vb’s) usando controles label textbox combobox y
otros para los problemas impares del del modelo de solucion.
OBJETOS HTML
“Button, Submit, Reset, CheckBox, Radio, Password, Text, TextArea, Select, Hidden”
Control “CheckBox”.
Control “Radio”.
Control “Password”.
Control “Select”.
Control “Hidden”.
Note Variant and Let are retained as keywords, although they are no longer used in
Visual Basic .NET.
Fuente: microsoft.net
WEBCONTROLS
System.Web.UI.WebControls Namespace
See Also
Namespace hierarchy
Classes
Class Description
Provides data for the AdCreated event of the
AdCreatedEventArgs
AdRotator control. This class cannot be inherited.
AdRotator Displays an advertisement banner on a Web page.
Serves as the abstract base class for validation
BaseCompareValidator
controls that perform typed comparisons.
Serves as the abstract base class for data listing
controls, such as the DataList and DataGrid. This
BaseDataList
class provides the methods and properties common to
all data listing controls.
Serves as the abstract base class for validation
BaseValidator
controls.
A column type for the DataGrid control that is bound
BoundColumn
to a field in a data source.
Button Displays a push button control on the Web page.
A column type for the DataGrid control that contains
a user-defined command button, such as Add or
ButtonColumn
Remove, that corresponds with each row in the
column.
Displays a single month calendar that allows the user
Calendar to select dates and move to the next or previous
month.
CalendarDay Represents a date in the Calendar control.
Displays a check box that allows the user to select a
CheckBox
true or false condition.
CheckBoxList Creates a multi selection check box group that can be
dynamically created by binding the control to a data
source.
CommandEventArgs Provides data for the Command event.
Compares the value entered by the user into an input
CompareValidator control with the value entered into another input
control or a constant value.
CustomValidator Performs user-defined validation on an input control.
A data bound list control that displays the items from
DataGrid data source in a table. The DataGrid control allows
you to select, sort, and edit these items.
Serves as the base class for the different column
DataGridColumn
types of the DataGrid control.
A collection of DataGridColumn derived column
DataGridColumnCollection objects that represent the columns in a DataGrid
control. This class cannot be inherited.
Provides data for the CancelCommand,
DeleteCommand, EditCommand, ItemCommand,
DataGridCommandEventArgs
and UpdateCommand events of the DataGrid control.
This class cannot be inherited.
DataGridItem Represents an item (row) in the DataGrid control.
Represents a collection of DataGridItem objects in a
DataGridItemCollection
DataGrid control.
Provides data for the ItemCreated and
DataGridItemEventArgs ItemDataBound events of the DataGrid control. This
class cannot be inherited.
Provides data for the PageIndexChanged event of the
DataGridPageChangedEventArgs
DataGrid control. This class cannot be inherited.
Specifies the style for the pager of the DataGrid
DataGridPagerStyle
control. This class cannot be inherited.
Provides data for the SortCommand event of the
DataGridSortCommandEventArgs
DataGrid control. This class cannot be inherited.
Represents a collection that contains the key field of
DataKeyCollection each record in a data source. This class cannot be
inherited.
A data bound list control that displays items using
DataList
templates.
Provides data for the CancelCommand,
DeleteCommand, EditCommand, ItemCommand,
DataListCommandEventArgs
and UpdateCommand events of the DataList control.
This class cannot be inherited.
DataListItem Represents an item in the DataList control.
Represents the collection of DataListItem objects in
DataListItemCollection
the DataList control. This class cannot be inherited.
Provides data for the ItemCreated and
DataListItemEventArgs ItemDataBound events of a DataList control. This
class cannot be inherited.
Provides data for the DayRender event of the
DayRenderEventArgs
Calendar control. This class cannot be inherited.
DropDownList Represents a control that allows the user to select a
single item from a drop-down list.
A special column type for the DataGrid control that
EditCommandColumn contains the Edit command buttons for editing data
items in each row.
Encapsulates the font properties of text. This class
FontInfo
cannot be inherited.
Converts a string containing a list of font names to an
FontNamesConverter array of strings containing the individual names. It
also performs the reverse function.
Converts a FontUnit to an object with another data
FontUnitConverter type. It also converts an object with another data type
to a FontUnit.
HyperLink A control that displays a link to another Web page.
A column type for the DataGrid control that contains
HyperLinkColumn
a hyperlink for each item in the column.
Interacts with the parser to build a HyperLink
HyperLinkControlBuilder
control.
Image Displays an image on a Web page.
A control that displays an image and responds to
ImageButton
mouse clicks on the image.
Represents a label control, which displays text on a
Label
Web page.
LabelControlBuilder Interacts with the parser to build a Label control.
Displays a hyperlink style button control on a Web
LinkButton
page.
Interacts with the parser to build a LinkButton
LinkButtonControlBuilder
control.
Represents a list box control that allows single or
ListBox
multiple item selection.
Serves as the abstract base class that defines the
ListControl properties, methods, and events common for all list-
type controls.
Represents a data item in a data-bound list control.
ListItem
This class cannot be inherited.
A collection of ListItem objects in a list control. This
ListItemCollection
class cannot be inherited.
ListItemControlBuilder Interacts with the parser to build a ListItem control.
Reserves a location on the Web page to display static
Literal
text.
LiteralControlBuilder Interacts with the parser to build a Literal control.
Provides data for the VisibleMonthChanged event of
MonthChangedEventArgs
a Calendar. This class cannot be inherited.
Encapsulates the properties of the DataGrid control
PagedDataSource that allow it to perform paging. This class cannot be
inherited.
Represents a control that acts as a container for other
Panel
controls.
PlaceHolder A container to store dynamically added server
controls on the Web page.
Interacts with the parser to build a PlaceHolder
PlaceHolderControlBuilder
control.
RadioButton Represents a radio button control.
Represents a list control that encapsulates a group of
RadioButtonList
radio button controls.
Checks whether the value of an input control is
RangeValidator
within a specified range of values.
Validates whether the value of an associated input
RegularExpressionValidator control matches the pattern specified by a regular
expression.
A data-bound list control that allows custom layout
Repeater by repeating a specified template for each item
displayed in the list.
Provides data for the ItemCommand event of a
RepeaterCommandEventArgs
Repeater. This class cannot be inherited.
RepeaterItem Represents an item in the Repeater control.
Represents a collection of RepeaterItem objects in
RepeaterItemCollection
the Repeater control. This class cannot be inherited.
Provides data for the ItemCreated and
RepeaterItemEventArgs
ItemDataBound events of a Repeater.
Encapsulates the information used to render a list
RepeatInfo control that repeats a list of items. This class cannot
be inherited.
RequiredFieldValidator Makes the associated input control a required field.
Encapsulates a collection of System.DateTime
SelectedDatesCollection objects that represent the selected dates in a Calendar
control. This class cannot be inherited.
Provides data for the ServerValidate event of the
ServerValidateEventArgs CustomValidator control. This class cannot be
inherited.
Style Represents the style of a Web server control.
Table Constructs a table and defines its properties.
TableCell Represents a cell in a Table control.
Encapsulates a collection of TableHeaderCell and
TableCellCollection TableCell objects that make up a row in a Table
control. This class cannot be inherited.
TableCellControlBuilder Interacts with the parser to build a TableCell control.
TableHeaderCell Represents a heading cell within a Table control.
Represents the style properties for an element of a
TableItemStyle
control that renders as a TableRow or TableCell.
TableRow Represents a row in a Table control.
Encapsulates a collection of TableRow objects that
TableRowCollection represent a single row in a Table control. This class
cannot be inherited.
Represents the style for a table control. This class is
TableStyle
primarily used by control developers.
Converts a value representing the location (target) to
TargetConverter display the content resulting from a Web navigation
to a string. It also converts a string to a target value.
Represents a column type for the DataGrid control
TemplateColumn that allows you to customize the layout of controls in
the column.
TextBox Constructs a text box and defines its properties.
TextBoxControlBuilder Interacts with the parser to build a TextBox control.
Converts a Unit to an object of another data type. It
UnitConverter
also converts an object of another data type to a Unit.
Converts a control on the Web Forms page that can
ValidatedControlConverter
be validated with a validation control to a string.
Displays a summary of all validation errors inline on
ValidationSummary
a Web page, in a message box, or both.
Converts a predefine color name or an RGB color
WebColorConverter
value to and from a System.Drawing.Color.
Serves as the base class that defines the methods,
WebControl properties and events common to all controls in the
System.Web.UI.WebControls namespace.
Displays an XML document without formatting or
Xml using Extensible Stylesheet Language
Transformations (XSLT).
Interfaces
Interface Description
Defines the properties and methods that must be implemented by any
IRepeatInfoUser
list control that repeats a list of items.
Structures
Structure Description
FontUnit Represents the size of a font.
Unit Represents a length measurement.
Delegates
Delegate Description
Represents the method that will handle the
AdCreatedEventHandler
AdCreated event of an AdRotator control.
Represents the method that will handle the
CommandEventHandler
Command event.
DataGridCommandEventHandler Represents the method that will handle the
CancelCommand, DeleteCommand,
EditCommand, ItemCommand, and
UpdateCommand events of a DataGrid.
Represents the method that will handle the
DataGridItemEventHandler ItemCreated and ItemDataBound events of a
DataGrid.
Represents the method that will handle the
DataGridPageChangedEventHandler
PageIndexChanged event of the DataGrid control.
Represents the method that will handle the
DataGridSortCommandEventHandler
SortCommand event of the DataGrid control.
Represents the method that will handle the
CancelCommand, DeleteCommand,
DataListCommandEventHandler
EditCommand, ItemCommand, and
UpdateCommand events of a DataList control.
Represents the method that will handle the
DataListItemEventHandler ItemCreated and ItemDataBound events of the
DataList control.
Represents the method that will handle the
DayRenderEventHandler
DayRender event of the Calendar control.
Represents the method that handles the
MonthChangedEventHandler
VisibleMonthChanged event of a Calendar.
Represents the method that will handle the
RepeaterCommandEventHandler
ItemCommand event of a Repeater.
Represents the method that will handle the
RepeaterItemEventHandler ItemCreated and ItemDataBound events of a
Repeater.
Represents the method that will handle the
ServerValidateEventHandler ServerValidate event of a CustomValidator
control.
Enumerations
Enumeration Description
BorderStyle Specifies the border style of a control.
Specifies the button type for the ButtonColumn
ButtonColumnType
object.
Specifies the date selection mode of the Calendar
CalendarSelectionMode
control.
Specifies the display format for the days of the week
DayNameFormat
on a Calendar control.
Specifies the day to display as the first day of the
FirstDayOfWeek
week on the Calendar control.
FontSize Specifies the font sizes defined by HTML 4.0.
Specifies the grid line styles for controls displaying
GridLines
items in a table structure.
Specifies the horizonal alignment of items within a
HorizontalAlign
container.
Specifies the alignment of an image in relation to the
ImageAlign
text of a Web page.
ListItemType Specifies the type of an item in a list control.
ListSelectionMode Specifies the selection mode of the ListBox control.
Represents the display format for the previous and
NextPrevFormat
next month navigation controls within the Calendar.
Represents the mode of the pager for accessing
PagerMode
various pages within the DataGrid control.
Specifies the position of the pager for accessing
PagerPosition
various pages within the DataGrid control.
Specifies the direction in which items of a list control
RepeatDirection
are displayed.
RepeatLayout Specifies the layout of items in a list control.
Specifies whether the text associated with a check box
TextAlign or radio button control appears to the left or to the
right of the control.
TextBoxMode Specifies the behavior mode of the text box.
Specifies the title format for the displayed month in
TitleFormat
the Calendar control.
UnitType Specifies the unit of measurement.
Specifies the validation comparison operators used by
ValidationCompareOperator
the CompareValidator control.
Specifies the validation data types used by the
ValidationDataType
CompareValidator and RangeValidator controls.
Specifies the validation summary display mode used
ValidationSummaryDisplayMode
by the ValidationSummary control.
Specifies the display behavior of error messages in
ValidatorDisplay
validation controls.
Specifies the vertical alignment of an object or text in
VerticalAlign
a control.
See Also
Como se puede apreciar existen muchos nuevos objetos de mucha utilidad para la
construccion de sistemas de informacion, todos estos objetos tienen sus propiedades
especificas, sin embargo muchos de ellos comparten las siguientes propiedades:
PROPIEDAD DESCRIPCION
BackColor Carga o lee el color de background
BorderColor Carga o lee el color del marco(border)
BorderStyle Carga o lee el estilo del marco
BorderWidth Carga o lee el tamano del marco
Font Carga o lee el font
ForeColor Carga o lee el color del foreground
Height Carga o lee la altura del control
ID Carga o lee el identificador del control
TabIndex Carga o lee el tab index
ToolTip Carga o lee el tooltip del control
Visible Carga o lee su estado visible
Width Carga o lee la anchura del control
AdRotator Class
See Also
Requirements
Namespace: System.Web.UI.WebControls
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.AdRotator
[Visual Basic]
**Public Class AdRotator
Inherits WebControl
**[C#]
**public class AdRotator : WebControl
**[C++]
**public __gc class AdRotator : public WebControl
**[JScript]
**public class AdRotator extends WebControl**
Thread Safety
Any public static (Shared in Visual Basic) members of this type are safe for
multithreaded operations. Any instance members are not guaranteed to be thread safe.
Remarks
Use the AdRotator control to display a randomly selected advertisement banner on the
Web page. The displayed advertisement can change whenever the page refreshes.
Advertisement information is stored in a separate XML file. The XML file allows you
to maintain a list of advertisements and their associated attributes. Attributes include the
path to an image to display, the URL to link to when the control is clicked, the alternate
text to display when the image in not available, a keyword, and the frequency of the
advertisement.
Requirements
Namespace: System.Web.UI.WebControls
Calendar Class
See Also
Namespace: System.Globalization
System.Object
System.Globalization.Calendar
Derived classes
[Visual Basic]
<Serializable>
**MustInherit Public Class Calendar
**[C#]
[Serializable]
**public abstract class Calendar
**[C++]
[Serializable]
**public __gc __abstract class Calendar
**[JScript]
**public
**Serializable
**abstract class Calendar**
Thread Safety
Any public static (Shared in Visual Basic) members of this type are safe for
multithreaded operations. Any instance members are not guaranteed to be thread safe.
Remarks
A calendar divides time into measures, such as weeks, months, and years. The number,
length, and start of the divisions vary in each calendar.
Any moment in time can be represented as a set of numeric values using a particular
calendar. For example, the last vernal equinox occurred at (0.0, 0, 46, 8, 20, 3, 1999) in
the Gregorian calendar. An implementation of Calendar can map any DateTime value
to a similar set of numeric values, and DateTime can map such sets of numeric values
to a textual representation (for example, “8:46 AM March 20th 1999 AD” for the
English (United States) culture) using DateTimeFormatInfo.
A Calendar implementation can define one or more eras. The Calendar class identifies
the eras as enumerated integers where the current era (CurrentEra) has the value 0.
In order to make up for the difference between the calendar year and the actual time that
the earth rotates around the sun or the actual time that the moon rotates around the earth,
a leap year has a different number of days than a standard calendar year. Each Calendar
implementation defines leap years differently.
For consistency, the first unit in each interval (for example, the first month) is assigned
the value 1.
Requirements
Namespace: System.Globalization
See Also
HyperLink Class
See Also
Requirements
Namespace: System.Web.UI.WebControls
[Visual Basic]
**Public Class HyperLink
Inherits WebControl
**[C#]
**public class HyperLink : WebControl
**[C++]
**public __gc class HyperLink : public WebControl
**[JScript]
**public class HyperLink extends WebControl**
Thread Safety
Any public static (Shared in Visual Basic) members of this type are safe for
multithreaded operations. Any instance members are not guaranteed to be thread safe.
Remarks
Use the HyperLink control to create a link to another Web page. The HyperLink
control is typically displayed as text specified by the Text property. It can also be
displayed as an image specified by the ImageUrl property.
Note If both the Text and ImageUrl properties are set, the ImageUrl property takes
precedence. If the image is unavailable, the text in the Text property is displayed. In
browsers that support ToolTip functionality, the Text property also becomes the
ToolTip.
Requirements
Namespace: System.Web.UI.WebControls
See Also
ImageButton Class
See Also
Namespace: System.Web.UI.WebControls
A control that displays an image and responds to mouse clicks on the image.
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Image
System.Web.UI.WebControls.ImageButton
[Visual Basic]
**Public Class ImageButton
Inherits Image
Implements IPostBackDataHandler, IPostBackEventHandler
**[C#]
**public class ImageButton : Image, IPostBackDataHandler,
IPostBackEventHandler
**[C++]
**public __gc class ImageButton : public Image, IPostBackDataHandler,
IPostBackEventHandler
**[JScript]
**public class ImageButton extends Image implements
IPostBackDataHandler, IPostBackEventHandler**
Thread Safety
Any public static (Shared in Visual Basic) members of this type are safe for
multithreaded operations. Any instance members are not guaranteed to be thread safe.
Remarks
Use the ImageButton control to display an image that responds to mouse clicks.
Both the Click and Command events are raised when the ImageButton control is
clicked.
By using the OnClick event handler, you can programmatically determine the
coordinates where the image is clicked. You can then code a response, based on the
values of the coordinates. Note the origin (0, 0) is located at the upper left corner of the
image.
You can use the OnCommand event handler to make the ImageButton control behave
like a command button. A command name can be associated with the control by using
the CommandName property. This allows multiple ImageButton controls to be placed
on the same Web page. The value of the CommandName property can then be
programmatically identified in the OnCommand event handler to determine the
appropriate action to perform when each ImageButton control is clicked. The
CommandArgument property can also be used to pass additional information about the
command, such as specifying ascending order.
Requirements
Namespace: System.Web.UI.WebControls
See Also
Construccion de programas visual basic net basandonos en los dos modelos de red
vistos es decir aspx’s(cuando es una forma junto con su programa) y .vb(cuando estan
separados las forma y el programa).
Esta definicion aspx y .vb no es real es solo para ir practicando los dos tipos de
programas de visual basic a lo largo del curso
1. for
2. do while loop
3. do loop while
En Visual Basic Net muchas de ellas tienen sus correspondientes componentes visuales,
tanto en html como en activex, htmlcontrols y webcontrols pero para proposito del
curso solo se usaran los equivalentes WebControls
desplegar ricos
si no
desplegar pobres
Fin-si
si gato = ‘m’
imprime gato
si no
imprime gata
Fin-si
De los ejemplos observar que los caminos a seguir por el computador dependeran de la
evaluacion que el computador hace con y de la condicion.
Todo lenguaje de programacion como visual basic debe tener instrucciones que
permitan formar condiciones e instrucciones que pueden evaluar esas condiciones.
Pero recordar que lenguajes modernos y orientados a cliente - servidor de igual forma
tienen componentes que permiten del mismo modo al usuario tomar decisiones incluso
directamente en pantalla, es decir tambien existen los objetos, controles o componentes
de seleccion y decision en html, htmlcontontrols, activex, webcontrols.
Esto dependera del valor que tenga asignado o que se haya capturado para la variable
que esta en la condicion, por ejemplo si se capturo 6000 en sueldo en el ejemplo a)
entonces el computador indicaria que la condicion es CIERTA pero en otro caso si a la
variable sueldo primero se le asigno un valor de 250 entonces el computador indicaria
que la condicion es FALSA.
En visual basic net una condicion simple se define como el conjunto de variables y/o
constantes unidas por los llamados operadores relacionales.
Operador Significado
= Igual que
> Mayor que
< Menor que
>= Mayor o igual que
⇐ Menor o igual que
<> No es igual que o es diferente que
If condicion Then
Else
End If
Ejemplos:
a) primer modelo, es decir un aspx con codigo vbnet
Prog4.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
RESULTADO.TEXT="RICO"
ELSE
RESULTADO.TEXT="POBRE"
END IF
END SUB
RESULTADO.TEXT="RICO"
ELSE
RESULTADO.TEXT="POBRE"
END IF
END SUB
</SCRIPT>
Corrida prog4.aspx
notas:
Lo nuevo es que existen tres tipos de objetos o controles de orden o comando, ellos son
BUTTON, LINKBUTTON, IMAGEBUTTON(efectivamente si hacen click dentro de la
imagen de mi perrito(osito) se activa el metodo correspondiente y por tanto se evalua la
condicion.
Pero imagebutton debe llevar su propio onclick y en su metodo void no se manda como
parametro un EVENTARGS sino un IMAGECLICKEVENTARGS.
prog5.aspx
<HTML>
<FORM RUNAT=SERVER>
<ASP:PANEL ID=PANEL1 BACKCOLOR=GREEN RUNAT=SERVER>
</ASP:PANEL></FORM></HTML>
Prog5.vb
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
RESULTADO.TEXT="RICO"
ELSE
RESULTADO.TEXT="POBRE"
END IF
END SUB
END CLASS
subir ambos programas de visual basic net a tu sitio en programacionfacil y pedir desde
el browser el aspx, es decir usar http://programacionfacil.com:4080/tusitio/prog5.aspx
corrida:
Recordar que es valido usar mas de una instruccion dentro del grupo cierto o falso del
if.
3.- Capturar los cinco datos mas importantes de un Empleado, incluyendo el sueldo
diario y los dias trabajados desplegarle su cheque semanal solo si gano mas de $500.00
en la semana, en caso contrario desplegarle un bono de despensa semanal de
$150.00.(primer modelo button’s diferentes)
4.- Capturar los datos mas importantes de un estudiante incluyendo tres calificaciones
construir una boleta de calificaciones en una pagina de respuesta bien bonita si el
estudiante es de la carrera de medicina, en caso contrario construir una pagina mas
bonita todavia que despliega un oficio citando a los padres del estudiante a una platica
amistosa con los maestros de la escuela. ( segundo modelo )
Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera
de medicina y su promedio de calificaciones es mayor de 70.
En visual basic net una condicion compuesta se define como dos o mas condiciones
simples unidas por los llamados operadores logicos.
OPERADOR SIGNIFICADO
AND Y LOGICO
OR O LOGICO
NOT NEGACION
Ejemplo
INSTRUCCIONES
ELSE
INSTRUCCIONES
END IF
En visual basic net para que el compilador evalue como CIERTA una condicion
compuesta que contiene el operador logico AND, las dos condiciones simples deben ser
ciertas.
Para que el computador evalue como CIERTA una condicion compuesta que contiene el
operador logico OR, basta con que una de las condiciones simples sea cierta.
La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta
dada por la relacion donde n = cantidad de condiciones, la primera mitad de ellos
empieza en cierto y la segunda mitad en falso.
La evaluacion final se obtiene usando la regla anteriormente descrita para una condicion
compuesta que contiene el operador “Y”.
1.- Cualquiera que sean la cantidad de datos procesados, siempre caera en uno de estos
cuatro casos generales.
Construir una tabla de verdad para una condicion compuesta de tres o mas condiciones
simples, es tambien tarea sencilla, solo recordar que;
1.- La cantidad posible de casos es casos posibles, la mitad empiezan con Cierto
y la otra mitad empiezan con Falso.
2.- Para evaluar esta condicion triple primero se evaluan las dos primeras incluyendo su
operador bajo las reglas ya descritas y luego se evalua el resultado parcial contra la
ultima condicion y ultimo operador para obtener la evaluacion final.
Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra
C C C C C
C C C F C
C F F C C
C F F F F
F C F C C
F C F F F
F F F C C
F F F F F
TAREAS VISUAL BASIC NET
1.- Construir un programa en visual basic net que capture un numero cualesquiera e
informe si es o no es mayor de 50 y multiplo de tres. ( solo escribir el mensaje de
respuesta de manera muy clara y esto resuelve el problema ) (LOS DOS MODELOS
ASPX Y VB )
2.- Construir un programa que indique si un numero es un par positivo. (dos modelos)
3.- Capturar los datos de una mercancia incluyendo su cantidad en existencia, desplegar
una orden de compra si la cantidad en existencia del producto es menor que el punto de
reorden, o si el origen del producto es nacional. ( ASPX )
4.- Construir un programa que capture los datos de un empleado , desplegar en una
pagina su cheque semanal si gana mas de $500.00 y si esta en el departamento de
produccion, en caso contrario desplegarle en otra pagina un bono de despensa del 25%
de su sueldo semanal. ( VB )
...
Case Else instruccion(es)
End Select
prog6.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
CASE "A"
ANIMALITO.TEXT = "AGUILA"
ANIMALITO.TEXT = "BACA"
CASE "C"
ALFA = 100 + 5
CASE ELSE
ANIMALITO.TEXT="NO HAY"
END SELECT
END SUB
</SCRIPT>
Es el primer modelo de visual basic net aspx, el otro modelo VB les toca a ustedes y la
unica nota digna de tomar en cuenta es que se pueden usar mas de dos instrucciones en
cada case.
Observar el caso “b”, observar como se pueden usar mas de dos constantes, sorry por lo
de BACA pero el unico animalito que me acorde fue el BURRO y luego mis alumnos se
sienten ofendidos.
Corrida:
1.- Construir un programa visual basic net que capture un deporte cualesquiera y
despliegue dos implementos deportivos apropiados. ( aspx y vb )
Existen muchas ocasiones en donde el usuario del programa tiene que proporcionar
datos que provienen de un conjunto finito y muy pequeno de posibles respuestas esto
significa que cada vez que se ejecute el programa el usuario estara proporcionando las
mismas respuestas.
Ejemplo de esta clase de datos, son por ejemplos Municipio en BC las posibles
respuestas solo son (Tecate, Tijuana, Mexicali, Ensenada, Rosarito), otro ejemplo es
Sexo (Hombre, Mujer), etc.
Para situaciones como esta, existen OBJETOS visual basic net webcontrols que
permiten programar por adelantado las posibles respuestas y el usuario solo debe
seleccionar la respuesta apropiada en lugar de tener que escribirla.
Prog7.aspx
<HTML>
<FORM RUNAT=SERVER>
</ASP:LISTBOX><BR>
</FORM></HTML>
MUNI.TEXT = MUNICIPIO.SELECTEDITEM.TEXT
END SUB
</SCRIPT>
Observar que tanto webcontrols listbox como dropdownlist se carga cada uno de sus
elementos con LISTITEM.
Recordar que estos controles tienen muchas propiedades muy utiles y que se seguiran
usando a lo largo del curso.
Corrida prog7.aspx
1.- 5 problemas de los ya vistos en visual basic net y deberan usar en unos webcontrols
listboxs y en otros webcontrols dropdownlist (2 en aspx y 3 en vb)
UNIDAD 2: VISUAL BASIC NET CONTROL DE PROGRAMA
Ejemplos de uso:
CHECKBOX:
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
IF MASCULINO.CHECKED THEN
SEXO.TEXT="MASCULINO"
END IF
IF FEMENINO.CHECKED THEN
SEXO.TEXT="FEMENINO"
END IF
IF DIEZ.CHECKED THEN
END IF
IF VEINTE.CHECKED THEN
END IF
END SUB
</SCRIPT>
2.- La propiedad ID debera ser diferente en cada checkbox usado, tambien se puede
agregar una propiedad checked=true para que aparezca ya palomeado o seleccionado el
control.
3.- Cuando se activa prog8x.asp, esta forma manda el par NAME=ON solo de los
checkbox que fueron seleccionados.
Corrida prog8.aspx:
Para programar este componente:
CHECKBOXLIST:
Este control nos permite mejorar la apariencia de la salida del checkbox, especialmente
si usamos propiedades REPEATCOLUMNS y REPEATDIRECTIONS.
Prog9.aspx
<HTML>
<FORM RUNAT=SERVER>
SEXO:<BR>
</ASP:CHECKBOXLIST>
</FORM></HTML>
<SCRIPT LANGUAGE=VB RUNAT=SERVER>
SEX.TEXT=SEXO.SELECTEDITEM.TEXT
END SUB
</SCRIPT>
2.- Construir un pagina aspx con los datos de un automovil y abajo construir un plan de
financiamiento a dos anos o muestra un plan de financiamiento a tres anos. ( son dos
checkboxlist en la pagina.aspx mas un monton de botones de texto o labels, para pasar
los datos al aspx y un boton de ok)
3.- Construir un prog vb que evalue una funcion cualquiera y que use ademas el
checkboxlist.
UNIDAD 2: VISUAL BASIC NET INSTRUCCIONES DE CONTROL DE
PROGRAMA
El principal problema que tienen los webcontrols checkbox es que un usuario puede
seleccionar mas de uno a la vez, esto es util en algunos problemas (comida preferida,
artista preferida, etc) pero es inconveniente en otros problemas ( sexo, ciudad de
nacimiento, etc).
RADIOBUTTON:
Codigo prog10.aspx
<HTML>
<FORM RUNAT=SERVER>
SEXO:<BR>
</FORM></HTML>
IF MASCULINO.CHECKED THEN
SEXO.TEXT="MASCULINO"
END IF
IF FEMENINO.CHECKED THEN
SEXO.TEXT="FEMENINO"
END IF
IF DIEZ.CHECKED THEN
END IF
IF VEINTE.CHECKED THEN
END IF
END SUB
</SCRIPT>
1.- Observar que tenemos dos grupos de radiobotones uno con GRUPNAME=GRUPO1
y otro con GROUPNAME=GRUPO2 sin embargo cada radiobuton tiene su propio valor
o ID.
2.- La razon principal para esta situacion es que los radiobotones son mutuamente
excluyentes entre si Y QUE SOLO UNO PUEDE ESTAR ENCENDIDO A LA VEZ por
eso los agrupamos con la propiedad GROUPNAME para que html los pueda considerar
como dos o mas grupos diferentes.
3.- Tambien pueden usar la propiedad checked=true para que aparezcan seleccionados al
cargar el programa prog11.aspx
4.- Para programarlo usar la misma tecnica que se analizo con CHECKBOX es decir
revisar la propiedad checked y un monton de if’s ( un if por cada radiobutton).
5.- Lo que aporta checkbox, es que no permite al usuario seleccionar mas de uno en
cada grupo, pero se tienen que checkar todos los que se usaron en la forma.
Corrida prog10.aspx
Como se observa checkbox son cajitas con una palomita y radiobutton son circulitos
con un puntito negro.
RADIOBUTTONLIST:
Prog11.aspx
<HTML>
<FORM RUNAT=SERVER>
SEXO:<BR>
</ASP:RADIOBUTTONLIST>
</FORM></HTML>
SEX.TEXT=SEXO.SELECTEDITEM.TEXT
END SUB
</SCRIPT>
Corrida prog11.aspx
radiobuttonlist y vb.
En visual basic net este ciclo es uno de los mas usados para repetir una secuencia de
instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que
se ejecute una instruccion simple o compuesta.
INSTRUCCION(ES)
NETX
EJEMPLO
http://programacionfacil.com:4080/tusitio/prog12.aspx.
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
DIM X AS INTEGER
LISTA.ITEMS.CLEAR
FOR X = 1 TO 10
NEXT X
END SUB
</SCRIPT>
notas:
O se usan muchos webcontrols label o textbox para desplegar todo lo que despliega el
ciclo for o se esta usando mejor un objeto listbox para procesar el conjunto de datos,
recordar que listbox, dropdownlist, comboboxlist, etc son objetos similares y por tanto
se pueden usar para estos problemas.
Se esta usando la propiedad add de la coleccion items del webcontrol listbox (lista).
Observar que para encadenar strings en visual basic net se usa el signo &
Y el metodo items.clear, es porque cuando el usuario usa el click mas de una vez, el
control listbox los va agregando de nuevo abajo, por eso en cuanto se activa el onclick
lo primero que se realiza es limpiar el listbox.
corrida: prog12.aspx
Casos Particulares:
1.- El ciclo comienza en uno y se incrementa de uno en uno, este es el caso mas general.
FOR X=5 TO 28
Response.write X
NEXT
3.- Incluso el valor inicial puede ser negativo, ejemplo;
FOR X= -5 TO 18
Response.write X
NEXT
4.- Los incrementos tambien pueden ser diferentes al de uno en uno, ej.;
Response.write X
NEXT
5.- Incluso pueden ser decrementos, solo que en este caso, recordar;
5.1.- el valor inicial de la variable debe ser mayor que el valor final y usar un step
negativo.
Response.write X
NEXT
Su formato general es :
DO WHILE CONDICION(ES)
INSTRUCCION(ES) CIERTAS
LOOP
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
DIM X AS INTEGER
X = 1
LISTA.ITEMS.CLEAR
DO WHILE X <= 10
X = X+ 1
LOOP
END SUB
</SCRIPT>
corrida prog14.aspx
En visual basic net While puede llevar dos condiciones en este caso inicializar 2
variables de condicion y cuidar que existan 2 de rompimiento o terminacion de ciclo.
El grupo cierto de instrucciones puede ser una sola instruccion o todo un grupo de
instrucciones.
A este ciclo tambien se le conoce tambien como ciclo de condicion de entrada o prueba
por arriba porque este ciclo evalua primero la condicion y posteriormente ejecuta las
instrucciones.
En visual basic net su diferencia basica con el ciclo do while...loop es que la prueba de
condicion es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando
menos una vez porque primero ejecuta las instrucciones y al final evalua la condicion;
Su formato general es :
DO
INSTRUCCION(ES) CIERTAS
prog15.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
DIM X AS INTEGER
X = 1
LISTA.ITEMS.CLEAR
DO
X = X+ 1
END SUB
</SCRIPT>
corrida:
Otra diferencia basica con el ciclo while es que, aunque la condicion sea falsa desde un
principio el cuerpo de instrucciones se ejecutara por lo menos una vez.
Si se quiere que al menos una vez se ejecute el ciclo entonces usar do loop while.
UNIDAD 3: VISUAL BASIC NET ARREGLOS
Uno de los problemas mas comunes en los diversos sistemas de informacion y visual
basic net es el tratamiento o procesamiento de una gran volumen de datos o de
informacion.
Las variables usadas hasta ahora reciben propiamente el nombre de variables escalares,
porque solo permiten almacenar o procesar un dato a la vez.
Cada dato dentro del arreglo se le conoce como elemento del arreglo y se simboliza y
procesa (captura, operacion, despliegue ) usando el nombre del arreglo respectivo y un
subindice indicando la posicion relativa del elemento con respecto a los demas
elementos del arreglo, solo recordar que en visual basic net la primera posicion,
elemento o renglon es el 0 (cero), ej.
NOMBRES
Juan –>nombres(0)
Pedro → nombres(1)
Rosa –> nombres(2)
Jose –> nombres(3)
En visual basic net sus problemas son similares a los de variables normales es decir hay
que declararlos, capturarlos, hacer operaciones con ellos, desplegarlos, compararlos, etc.
En programacion tradicional siempre se manejan dos tipos de arreglos los arreglos tipo
listas, vectores o unidimensionales y los arreglos tipo tablas, cuadros, concentrados,
matrices o bidimensionales en ambos casos son variables que permiten almacenar un
conjunto de datos del mismo tipo a la vez, su diferencia es en la cantidad de columnas
que cada uno de estos tipos contiene, como en los siguientes ejemplos:
a) LISTAS
EDAD
18
34
22
15
B) TABLAS
CIA ACME
(MILES DE $)
SUC A 10 20 30 40
SUC B 50 60 70 80
SUC D 90 100 110 120
En visual basic net la diferencia principal entre un arreglo tipo lista y un arreglo tipo
tabla son las cantidades de columnas que contienen.
En visua basic net un arreglo tipo lista se define como una variable que permite
almacenar un conjunto de datos del mismo tipo organizados en una sola columna y uno
o mas renglones.
Recordar tambien que como objeto arreglo, tambien puede usar una serie de metodos
pertenecientes a dicha clase system.array, los metodos principales de dicha clase y por
tanto de los arreglos derivados de la misma son:
Public Methods
Overloaded. Searches a one-dimensional sorted Array for a
BinarySearch
value, using a binary search algorithm.
Sets a range of elements in the Array to zero, to false, or to a
Clear null reference (Nothing in Visual Basic), depending on the
element type.
Clone Creates a shallow copy of the Array.
Overloaded. Copies a section of one Array to another Array
Copy
and performs type casting and boxing as required.
Copies all the elements of the current one-dimensional Array
CopyTo to the specified one-dimensional Array starting at the specified
destination Array index.
CreateInstance Overloaded. Initializes a new instance of the Array class.
Equals (inherited from Overloaded. Determines whether two Object instances are
Object) equal.
GetEnumerator Returns an IEnumerator for the Array.
GetHashCode (inherited Serves as a hash function for a particular type, suitable for use
from Object) in hashing algorithms and data structures like a hash table.
Gets the number of elements in the specified dimension of the
GetLength
Array.
GetLowerBound Gets the lower bound of the specified dimension in the Array.
GetType (inherited from
Gets the Type of the current instance.
Object)
GetUpperBound Gets the upper bound of the specified dimension in the Array.
Overloaded. Gets the value of the specified element in the
GetValue
current Array.
Overloaded. Returns the index of the first occurrence of a value
IndexOf
in a one-dimensional Array or in a portion of the Array.
Initializes every element of the value-type Array by calling the
Initialize
default constructor of the value type.
Overloaded. Returns the index of the last occurrence of a value
LastIndexOf
in a one-dimensional Array or in a portion of the Array.
Overloaded. Reverses the order of the elements in a one-
Reverse
dimensional Array or in a portion of the Array.
Overloaded. Sets the specified element in the current Array to
SetValue
the specified value.
Overloaded. Sorts the elements in one-dimensional Array
Sort
objects.
ToString (inherited from
Returns a String that represents the current Object.
Object)
notas:
En visual Basic Net recordar que la primera posicion o renglon en una lista es la
posicion o renglon 0 (cero).
Prog16.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
EDADARR(RENG.TEXT) = EDAD.TEXT
RENG.TEXT= RENG.TEXT + 1
EDAD.TEXT=""
END IF
EDAD.TEXT="YAAAAAAAAAA"
END IF
END SUB
EDADARR.SORT(EDADARR)
DIM Z
Z=EDADARR.LENGTH
RESPONSE.WRITE(Z)
DIM X
FOR X = 0 TO 4
LISTA.ITEMS.ADD(EDADARR(X) + 10 )
NEXT X
END SUB
</SCRIPT>
corrida prog16.aspx
notas:
Se esta usando un webcontrol textbox (reng) como variable de control e indice del
arreglo en la captura, reng empieza en cero y termina en 4, recordar que el arreglo es de
5 elementos, pero su captura y despliegue van del renglon 0 hasta el renglon cuatro.
Recordar que todos los datos internos de la lista estaran almacenados en la memoria ram
del computador, para despliegues se usara un componente visual que permite manipular
un conjunto de datos a la vez, el ListBox con sus metodos apropiados, pero se tiene que
usar un ciclo for para ir anadiendo o agregando elemento por elemento como se observa
en el problema ejemplo que se ha venido desarrollando, en este caso se quiere desplegar
las cinco edades ordenas y sumandoles 10 a cada una.
ej;
1.- Capturar y desplegar en visual basic net 5 precios de mercancia cualesquiera usando
dos panel, uno para capturar y uno para desplegar(2 aspx uno capturado y otro
inicializado, alguno de ellos ordenado).
3.- Capturar los datos de 5 mercancias comprados en una tienda, incluyendo nombre,
precio y cantidad en sus 3 listas respectivas, despues calcular una cuarta lista con el
gasto total por cada producto desplegarlo todo en un segundo panel e incluir tambien el
gran total( aspx ).
4.- Capturar en una lista solamente 6 numeros multiplos de 5, se debe de estar capture y
capture numeros hasta que se completen los 6 multiplos de 5( vb solo cuidar el contador
de renglones)
En visual basic net un arreglo tipo tabla se define como un conjunto de datos del mismo
tipo organizados en dos o mas columnas y uno o mas renglones.
Para efectuar otros procesos tales como operaciones, despliegue con todos los
elementos de la tabla se deberan usar 2 ciclos, un for externo para controlar renglon y
un for interno para controlar columna.
Prog17.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
CALIF(REN.TEXT,COL.TEXT)=CAL.TEXT
COL.TEXT=COL.TEXT + 1
CAL.TEXT=""
IF COL.TEXT = 3 THEN
REN.TEXT=REN.TEXT+1
COL.TEXT=0
END IF
IF REN.TEXT=2 THEN
CAL.TEXT="YAAAAAA"
END IF
END SUB
FOR R=0 TO 1
FOR C=0 TO 2
CALIF(R,C)=CALIF(R,C)+10
NEXT C
NEXT R
FOR R=0 TO 1
FOR C=0 TO 2
RESPONSE.WRITE(CALIF(R,C)& "..")
NEXT C
RESPONSE.WRITE("<BR>")
NEXT R
END SUB
</SCRIPT>
Notas:
Observar el formato de declaracion en visual basic net y como se controlan los indices
de captura reng, col.
Para procesar los elementos se usan dos ciclos for y el formato tabla (reng,col).
Ustedes sin embargo deberan usar tres webcontrols listbox para hacer el despliegue(lo
que esta permitido al maestro no esta permitido al alumno).
Observar que no se ocupo al final poner en cero las variables de control (reng, col)
porque:
ASP es una libreria de objetos hecha por Microsoft y contiene siete objetos muy utiles
para el trabajo con paginas html, consultar el apendice al final de esta unidad donde se
incluye el apendice ASP viejo.
Corrida prog17.aspx
FOR R = 0 TO 3
FOR C = 0 TO 2
NEXT C
PROMRENG(R) = TOTRENG(R)/3
NEXT R
FOR C = 0 TO 2
FOR R = 0 TO 3
TOTCOL(C)=TOTCOL(C) + TABLA(R,C)
NEXT R
PROMCOL(C) = TOTCOL(C) / 4
NEXT C
La propiedad Rows ( en la forma html) que se usa al crearlo es solo para indicarle
cuantos renglones desplegara en pantalla es decir si se usa rows=5, en listbox se podra
capturar todos los elementos o datos que se quiera pero solo desplegara los ultimos
cinco elementos.
Sin embargo existen ciertas propiedades del listbox que permiten conocer cuantos
elementos estan cargados en el listbox.
En visual basic net otro importante aspecto a recordar cuando se procese o programe es
que el primer indice de la lista es tambien el indice numero 0(cero).
Este componente contiene muchas propiedades y metodos que facilitan el trabajo con
datos la mas importante es su propiedad ITEMS que a su vez tiene:
Items.IndexOf(dato): Regresa el indice o posicion del objeto o dato dentro del listbox.
Items[indice].Text: get or set el dato en la posicion indicada (ver primera nota abajo).
Notas:
Como ya se indico anteriormente get or set de visual basic net son propiedades
asociadas a todos los objetos o controles y sus propiedades de microsoft.net por ejemplo
para un textbox si en un programa se dice alfa = text5.text se esta usando metodo GET,
si se dice text5.text=500 se esta usando metodo SET.
Este metodo GET-SET se puede usar para cualquier propiedad por ejemplo
alfa=listbox8.background; se esta usando get para conocer el color del backaground,
pero si se codifica listbox8.background=amarillo se esta usando set, como se observa es
importante entender y aplicar este GET-SET en todos los programas.
Capturas: Solo se ocupara un Text el evento click del button y el metodo Add del
ListBox.
Pero si se quiere pasar de un ListBox a otro ListBox, entonces ciclo for, count, etc.
ejemplo prog18.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
LISTA.ITEMS.ADD(DATO.Text)
DATO.TEXt=""
END SUB
cant=LISTA.ITEMS.COUNT
meses=LISTA.ITEMS(reng).TEXT
meses=meses * 12
LISTA.ITEMS(reng).TEXT=meses
NEXT reng
END SUB
</SCRIPT>
Recordar que el primer indice en un ListBox es el cero por eso el ciclo va desde el cero
hasta la cantidad de elementos menos uno.
Corrida:
COMO ULTIMA NOTA IMPORTANTE ES QUE EN VISUAL BASIC NET
EXISTEN OTROS DOS CONTROLES QUE PUEDEN COMPORTARSE Y
USAR LOS MISMOS METODOS ASOCIADOS A LISTBOX, ESTOS
CONTROLES SON EL COMBOBOX Y DATALIST EN PROXIMOS CURSOS
SE INCLUIRAN COMO TEMAS EXTRAS)
1.- El objeto TABlE de HTML que es el control mas basico de este tipo.
2.- El WARPER de este objeto es decir HTMLTABLE con una nueva serie de atributos
y metodos.
CIA ACME
MILLONES DE PESOS
Recordar que son los datos numericos internos quienes se procesan (es decir se
capturan, se realizan operaciones con ellos, se despliegan, etc.), es la informacion
externa quien le da sentido.
GridLine.- Se usa para indicar si el marco debera ser solo vertical, horizontal o ambos.
Add.- Otra propiedad de CELL y tambien de ROW que se puede usar para cargar un
dato en una celda o una celda en un renglon.
Otro aspecto importante a recordar es que TABLE no permite edicion directa por parte
del usuario de sus celdas por ese motivo se usara un componente externo TextBox para
capturas asi como el evento click de un button apropiado.
Para procesar todos los elementos de la tabla, solo recordar que se deben usar dos ciclos
for uno externo para controlar renglones y uno interno para controlar columna.
Si solo se quiere procesar un solo renglon o columna, entonces solo se ocupara el ciclo
contrario y el renglon o columna original se daran como constantes.
Ejemplo prog19.aspx
<FORM RUNAT=SERVER>
FOR CANTRENG = 1 TO 3
FOR CANTCOL = 1 TO 4
celda.TEXT = "dato"
renglon.CELLS.ADD(celda)
NEXT CANTCOL
TABLA.ROWS.ADD(renglon)
NEXT CANTRENG
TABLA.ROWS(REN.TEXT).CELLS(COL.TEXT).TEXT = DATO.TEXT
COL.TEXT=COL.TEXT + 1
DATO.TEXT=""
IF COL.TEXT = 4 THEN
REN.TEXT = REN.TEXT + 1
COL.TEXT = 0
END IF
IF REN.TEXT = 3 THEN
REN.TEXT = 0
COL.TEXT = 0
END IF
END SUB
FOR R = 0 TO 2
FOR C = 0 TO 3
temp = TABLA.ROWS(R).CELLS(C).TEXT
temp = temp + 10
TABLA.ROWS(R).CELLS(C).TEXT = temp
NEXT C
NEXT R
END SUB
</script>
Se empieza creando un objeto de tipo pagina (PAGE) de html la razon de esto es doble,
primero porque se necesita crear y tambien inicializar un objeto table y se aprovecha el
metodo ONLOAD DE PAGE para realizar este proceso es decir en cuanto se carga la
pagina se inicializa la tabla.
Para cargar la celda al renglon respectivo asi como para cargar el renglon a la tabla (otro
objeto tambien) se usa el metodo ADD.
Ya dentro del metodo de CARGAR observar que para procesar una celda determinada,
se debera usar toda la ruta completa es decir TABLA.RENGLON.CELDA.
Como se esta cargando TEXT de TextBox a TEXT de CELL solo se igualaron las
propiedades respectivas.
Corrida prog19.aspx
Un proceso muy comun con tablas cuadros y concentrados es agregarles listas de totales
y promedios ya sea por columna o por renglon o ambas por ejemplo:
CIA ACME
INGRESOS MENSUALES
(MILES DE PESOS)
En este ejemplo aparte de la tabla se ocupan 4 listas dos para totales y dos para
promedios.
El Codigo para este tipo de problemas ya se dio en el tema de arreglos normales tipo
tabla.
1.- Construir en visual basic net un concentrado que despliegue los costos fijos de tres
diversos productos que se fabrican en cuatro sucursales de una empresa
MAQUILADORA.(aspx)
2.- Construir en visual basic net un concentrado que contenga los ingresos por ventas
mensuales de los 4 primeros meses del ano de tres sucursales de una cadena
refaccionaria, agregar listas de ingresos totales por mes e ingresos promedios por
sucursal. (vb)
3.- Construir en visual basic net un cuadro que contenga las calificaciones de 5 materias
de cuatro alumnos cualesquiera, incluir promedios de calificaciones por materia y por
alumno. (aspx)
1.- El objeto TABlE de HTML que es el control mas basico de este tipo.
2.- El WARPER de este objeto es decir HTMLTABLE con una nueva serie de atributos
y metodos.
CIA ACME
MILLONES DE PESOS
Recordar que son los datos numericos internos quienes se procesan (es decir se
capturan, se realizan operaciones con ellos, se despliegan, etc.), es la informacion
externa quien le da sentido.
GridLine.- Se usa para indicar si el marco debera ser solo vertical, horizontal o ambos.
Add.- Otra propiedad de CELL y tambien de ROW que se puede usar para cargar un
dato en una celda o una celda en un renglon.
Como se observa de las dos propiedades anteriores CELDA es el elemento mas
importante de una TABLA, CELDA tiene muchas propiedades y metodos y en el caso
particular de TEXT y ADD recordar que TEXT tiene las caracteristicas de GET-SET
que ya se ha analizado en temas anteriores y por tanto sera mas util o usado que el
metodo ADD.
Otro aspecto importante a recordar es que TABLE no permite edicion directa por parte
del usuario de sus celdas por ese motivo se usara un componente externo TextBox para
capturas asi como el evento click de un button apropiado.
Para procesar todos los elementos de la tabla, solo recordar que se deben usar dos ciclos
for uno externo para controlar renglones y uno interno para controlar columna.
Si solo se quiere procesar un solo renglon o columna, entonces solo se ocupara el ciclo
contrario y el renglon o columna original se daran como constantes.
Ejemplo prog19.aspx
<FORM RUNAT=SERVER>
FOR CANTRENG = 1 TO 3
FOR CANTCOL = 1 TO 4
celda.TEXT = "dato"
' cargando la celda al renglon
renglon.CELLS.ADD(celda)
NEXT CANTCOL
TABLA.ROWS.ADD(renglon)
NEXT CANTRENG
TABLA.ROWS(REN.TEXT).CELLS(COL.TEXT).TEXT = DATO.TEXT
COL.TEXT=COL.TEXT + 1
DATO.TEXT=""
IF COL.TEXT = 4 THEN
REN.TEXT = REN.TEXT + 1
COL.TEXT = 0
END IF
IF REN.TEXT = 3 THEN
REN.TEXT = 0
COL.TEXT = 0
END IF
END SUB
FOR R = 0 TO 2
FOR C = 0 TO 3
temp = TABLA.ROWS(R).CELLS(C).TEXT
temp = temp + 10
TABLA.ROWS(R).CELLS(C).TEXT = temp
NEXT C
NEXT R
END SUB
</script>
Se empieza creando un objeto de tipo pagina (PAGE) de html la razon de esto es doble,
primero porque se necesita crear y tambien inicializar un objeto table y se aprovecha el
metodo ONLOAD DE PAGE para realizar este proceso es decir en cuanto se carga la
pagina se inicializa la tabla.
Para cargar la celda al renglon respectivo asi como para cargar el renglon a la tabla (otro
objeto tambien) se usa el metodo ADD.
Ya dentro del metodo de CARGAR observar que para procesar una celda determinada,
se debera usar toda la ruta completa es decir TABLA.RENGLON.CELDA.
Como se esta cargando TEXT de TextBox a TEXT de CELL solo se igualaron las
propiedades respectivas.
Corrida prog19.aspx
Un proceso muy comun con tablas cuadros y concentrados es agregarles listas de totales
y promedios ya sea por columna o por renglon o ambas por ejemplo:
CIA ACME
INGRESOS MENSUALES
(MILES DE PESOS)
En este ejemplo aparte de la tabla se ocupan 4 listas dos para totales y dos para
promedios.
El Codigo para este tipo de problemas ya se dio en el tema de arreglos normales tipo
tabla.
2.- Construir en visual basic net un concentrado que contenga los ingresos por ventas
mensuales de los 4 primeros meses del ano de tres sucursales de una cadena
refaccionaria, agregar listas de ingresos totales por mes e ingresos promedios por
sucursal. (vb)
3.- Construir en visual basic net un cuadro que contenga las calificaciones de 5 materias
de cuatro alumnos cualesquiera, incluir promedios de calificaciones por materia y por
alumno. (aspx)
En Visual basic net un parametro es una variable que puede pasar su valor a un
procedimiento desde el principal o desde otro procedimiento.
Existen ocasiones en que es necesario mandar al procedimiento ciertos valores para que
los use en algun proceso.
Estos valores que se pasan del cuerpo principal del programa o de un procedimiento a
otros procedimientos se llaman parametros.
cuerpo de instrucciones
END SUB
Donde lista de parametros es una o mas variables separadas por coma como lo muestra
el pograma ejemplo.
Prog21.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
<SCRIPT LANGUAGE=VB RUNAT=SERVER>
nom ="pepe"
END SUB
NOMBRE.TEXT= nom
END SUB
</SCRIPT>
Observar que en el procedimiento los parametros crean tres variables de manera local es
decir variables que solo pueden usar dentro del procedimiento estas variables son
quienes reciben los datos o valores.
1.- Cuando se usan variables como parametros la variable que se manda debe ser
declarada dentro del principal o del procedimiento de donde se esta enviando.
2.- La variable que se manda tiene un nombre, la que recibe puede tener otro nombre o
el mismo nombre por claridad de programa, pero recordar que internamente en la
memoria del computador existiran dos variables diferentes.
3.- La cantidad de variables que se envian deben ser igual en cantidad, orden y tipo a las
variables que reciben.
4.- La variable que se recibe tiene un ambito local dentro del procedimiento es decir,
solo la puede usar ese procedimiento.
Corrida prog21.aspx
TAREAS VISUAL BASIC NET
Construir una tabla de multiplicar que el usuario indique en visual basic net , captura y
control de ciclo en el principal, calculo y despliegue en un procedimiento usar tres
listboxs para responder( vb )
En visual basic net el lugar donde sea declarada una variable afectara el uso que el
programa quiera hacer de esa variable.
Las reglas basicas que determinan como una variable puede ser usada depende de 3
lugares donde se puede declarar una variable.
En segundo lugar es como parametro de una funcion, donde despues de haber recibido
el valor podra actuar como variable local en esa funcion o procedimiento.
En escencia una variable local solo es conocida por el codigo de esa funcion o
procedimieto y es desconocida por otras funciones o procedimientos.
En tercer lugar es fuera de todas los procedimiento o funciones(que es el caso comun de
casi todas las variables usadas hasta ahora en los ejemplos y programas hechos) a este
tipo de variables se les llama variables globales y podran ser usadas por cualquier
funcion o procedimiento del programa.
Prog22.aspx
<HTML>
</FORM></HTML>
DIM varuno = 50
DIM vardos = 20
CALL PROC1(vardos )
END SUB
DATO.TEXT=varuno + vartres
END SUB
</SCRIPT>
corrida prog23.aspx:
TAREAS VISUAL BASIC NET
Una funcion en visual basic net es un modulo de un programa separado del cuerpo
principal, que realiza una tarea especifica y que puede regresar un valor a la parte
principal del programa u otra funcion o procedimiento que la invoque.
Function Nom_fun(parametros)
instrucciones
End Function
La lista de parametros formales es una lista de variables separadas por comas (,) que
almacenaran los valores que reciba la funcion estas variables actuan como locales
dentro del cuerpo de la funcion.
Dentro del cuerpo de la funcion deber haber una instruccion que cargue el
NOMFUNCION para regresar el valor, de esta manera se regresan los datos.
Sin embargo es de considerar que NOMFUNCION puede regresar un dato, una variable
o una expresion algebraica(no ecuacion o formula) como lo muestran los siguientes
ejemplos;
a) FUNCION1 = 3.1416
b) FUNCION1 = area
c) FUNCION1 = x + 15 / 2
Recordar ademas:
b) Cuando se llame a una funcion debera haber una variable que reciba el valor que
regresara la funcion, es decir generalmente se llama una funcion mediante una sentencia
de asignacion, por ejemplo resultado = funcion(5, 3.1416)
Prog23.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
DIM alfa
alfa = FUNCION1(500)
END SUB
END FUNCTION
</SCRIPT>
En visual Basic Net usar solo integers y doubles como parametros de preferencia.
funcion50 = 300
else
funcion50 = 20
end if
Las primeras son de tipo computacional que son disenadas para realizar operaciones con
los argumentos y regresan un valor basado en el resultado de esa operacion.
Las segundas funciones son aquellas que manipulan informacion y regresan un valor
que indican la terminacion o la falla de esa manipulacion.
Las terceras son aquellas que no regresan ningun valor, es decir son estrictamenta
procedurales.
Esto quiere decir que en general toda operacion o calculo en un programa debera
convertirse a una o muchas funciones y el resto deberan ser procedimientos.
2.- En un programa visual basic net crear una tabla de multiplicar, captura y control de
ciclo en el principal, operaciones en una funcion, despliegue en el principal. ( vb )
Prog24.aspx
<HTML>
<FORM RUNAT=SERVER>
</FORM></HTML>
CALL PROC1(lista)
DIM r AS INTEGER
FOR r = 0 TO 4
MILISTA.ITEMS.ADD(lista(r))
NEXT r
END SUB
SUB PROC1(vector)
DIM r AS INTEGER
FOr r = 0 TO 4
vector(r)=vector(r) + 100
NEXT r
END SUB
</SCRIPT>
corrida prog24.aspx
Es de recordar que los cambios que le hagan al arreglo dentro de la funcion se reflejaran
en el arreglo original es por esto que si se quiere modificar un arreglo en una funcion no
hay necesidad de regresar ningun valor.
1.- En un programa visual basic net inicializar 10 edades en el principal mandar la lista
a un procedimiento que la convierte a meses, desplegar en principal ( ASPX ).
a) Variables que permitan almacenar conjuntos de datos como los arreglos pero con
distintos tipos de datos, este primer problema se resolvia en la antiguedad usando las
llamadas variables registro.
b) Permanencia de los datos, hasta ahora todos los datos capturados, calculados,
creados, etc., al terminar o cerrarse el programa se pierden y es necesario volver a
capturarlos en la siguiente ejecucion o corrida del programa.
a) Variables que permitan almacenar conjuntos de datos como los arreglos pero con
distintos tipos de datos, este primer problema se resolvia en la antiguedad usando las
llamadas variables registro.
b) Permanencia de los datos, hasta ahora todos los datos capturados, calculados,
creados, etc., al terminar o cerrarse el programa se pierden y es necesario volver a
capturarlos en la siguiente ejecucion o corrida del programa.
Tradicionalmente en programacion antigua, este segundo problema se resolvia usando el
concepto de archivos, que son medios permanentes de almacenamiento de datos en
dispositivos o perifericos apropiados generalmente disco, cinta magnetica, etc.
En Visual Basic Net una Tabla simple, representa una unidad de informacion de
una entidad fisica o logica de informacion:
ej.:
Tabla Empleado:
• Clave Empleado
• Nombre Empleado
• Direccion Empleado
• Edad Empleado
• Telefono Empleado
• etc. Empleado
Tabla Proveedor:
• Clave Proveedor
• Nombre Proveedor
• Empresa Proveedor
• Telefono Proveedor
• Fax Proveedor
• Celular Proveedor
• etc. Proveedor
Tabla Autos:
• Numero de Serie
• Modelo
• Marca
• Tipo
• Color
• Capacidad
• etc.
REGLAS:
Observar que cada tabla empieza con una clave generalmente de tipo numerica.
Todos los elementos de la tabla solo hacen referencia hacia el mismo ente o sujeto
de informacion.
Tabla: Camisas
Tabla: Clientes
Recordar siempre, una tabla almacena o representa un conjunto de datos del mismo tipo
o entidad, la tabla de alumnos es para almacenar y manipular muchos alumnos, la tabla
de productos es para almacenar y manipular muchos alumnos, en resumen si en un
problema de informacion solo se presenta una instancia o renglon de una entidad logica,
entonces no es tabla, es un encabezado.
1.- PACIENTES
2.- PERROS
3.- COMPUTADORAS
4.- MERCANCIAS
5.- PELICULAS
6.- MEDICINAS
7.- MAESTROS
10.- BANCOS
En Visual Basic net el trabajo correcto con bases de datos relacionales se divide en dos
grandes pasos o etapas bien diferenciadas entre si:
En la primera etapa se disena la tabla con sus campos, llaves y condiciones especiales,
luego se usa un paquete o programa de software especializado en la construccion,
mantenimiento y administracion de la base de datos, este software se usa para convertir
la tabla o tablas ya bien disenadas en un archivo en disco.
Usaremos Microsoft Access como nuestro generador de bases de datos y recordar que
una base de datos es en principio un conjunto de tablas que tienen y mantienen
relaciones entre si.
El primer paso antes de usar el paquete correspondiente a esta tarea, es disenar la tabla
completamente, esto exige:
En este ejercicio con microsoft access construiremos una base de datos llamada mibase
que solo contendra una tabla llamada mitabla con tres campos que son clave,
nombre y edad mismos que se estaran usando a lo largo de esta unidad a manera de
ejemplo.
Se usa Access97 en virtud de que es el mas sencillo de todas las versiones aunque se
puede usar cualquier version sin embargo solo se responde por access97.
PROCEDIMIENTO:
4.- Ponerla en un lugar o folder adecuado y para este ejemplo llamarla mibase (como se
ve en la pantalla de arriba), usar el boton create.
6.- Esta ultima pantalla permite construir una o mas tablas que contendra la base de
datos (mibase), observar que tambien permite agregarle mas elementos a una base de
datos (querys, forms, reports, etc, esperar un curso de estos en programacionfacil) pero
para este ejercicio solo agregar una tabla ( que se llamara mitabla) a la base de datos,
para crear mitabla solo usar el boton new y Access ofrecera construirla de varias
maneras distintas de preferencia seleccionar la manera DESIGN VIEW que les mandara
la siguiente pantalla:
7.- En FIELD NAME escibimos el nombre del campo, en DATA TYPE solo click y
salen las opciones de los diversos tipos de datos que ofrece access, en DESCRIPTION
se puede poner una descripcion de los propositos del campo, para el ejemplo que se esta
mostrando se usa number para la clave, texto con tamano 30 caracteres (seleccionar
abajo) para nombre y number para edad.
8.- Observar que CLAVE tiene una pequena llave a un lado, esto significa que CLAVE
es la llave primaria de la tabla, para marcarla como llave primaria primero seleccionar
todo el renglon haciendo un click en el cuadrito gris que esta antes de la palabra clave y
luego hacer un click derecho y del minimenu que sale usar opcion primary key, es muy
importante que el tipo de dato de la clave sea de tipo NUMBER.
9.- Ahora cerrar la tabla usando la [x] de arriba y access lpreguntara con que nombre se
llamara la tabla, ponerle mitabla.
12.- Cerrar microsoft access con la [x] de arriba y si dios quiere ya se tiene construida
MIBASE.MDB que a su vez contiene MITABLA que a su vez contiene unos cuantos
renglones de datos.
13.- El ultimo paso en visual basic net es subirla a tu sitio mibase.mdb para que ya este
lista y preparada para procesarla con ASP NET y VISUAL BASIC NET
Empezando:
El problema es comunicar un programa o aplicacion con una base de datos y mas que
comunicar se pretende que el programa o aplicacion realize una serie de procesos u
operaciones con la base de datos o mejor aun con el conjunto de tablas que contiene una
base de datos.
La primera nota a recordar es que una base de datos puede estar fisicamente en el
servidor y en algun folder o directorio del disco duro de dicha maquina servidora por
ejemplo, c:\progfacil\misitio\mibase.mbd, como se observa la base que se construyo en
access (mibase.mbd) se almaceno en el disco c en el folder progfacil y dentro del
subfolder misitio.
Sin embargo tambien es necesario conocer que asi como existen servidores de paginas
( web server ), servidores de correo ( mail server ), servidores de ftp ( ftp server ), etc,
tambien existen servidores de bases de datos (database server), los mas comunes son el
sqlserver de microsoft, oracle, mysql, etc, estos servidores tambien pueden crear,
administrar y procesar una base de datos por supuesto que el procedimiento que se dio
para crearla en access en el tema anterior no se puede usar para crear y cargar una base
de datos en un servidor de bases de datos.
El modo de comunicarse entre nuestro programa visual basic net o aplicacion y la base
de datos (ya sea fisica o un dbserver) implica que ambos manejen un lenguaje de
programacion comun, es decir no se puede mandar una instruccion en c# o en borland
delphi java a la base de datos y ademas esperar que esta ultima la entienda ( para
entender esto, una razon muy sencilla es que la base de datos tendria que conocer o
comprender todos los lenguajes de programacion), para resolver este problema de
comunicacion es que se usa un lenguaje comun de bases de datos que tanto los
lenguajes de programacion existentes como las bases de datos entienden, este lenguaje
comun de bases de datos es el SQL (structured query languaje) o lenguaje
estructurado de consultas.
Bueno las principales instrucciones de SQL que se usan en este curso son SELECT,
INSERT, UPDATE y DELETE.
Este objeto primero se tendra que crear en el programa y luego se tendra que cargar con
dos parametros (ver ejemplo mas abajo), el primer parametro es el provedor o la fuente
que proporcionara los datos, los provedores o fuentes de datos que existen son:
Es una sola string y los dos parametros mencionados van separados por el punto y
coma.
//Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=c:\bin\LocalAccess40.mdb;
Ya establecido el canal o enlace entre el programa aspx y la base de datos via el objeto
CONECCION, se debe mandar la instruccion SQL a la propia base de datos, sin
embargo en un programa de vbasic por supuesto que no puede contener instrucciones de
otros lenguajes de programacion como el de SQL, es por esto que se deberan usar
algunos de los otros objetos de ADO.NET para que estos objetos transporten la
instruccion sql hacia la base de datos (y transporte de regreso al servidor los datos de
alguna tabla), uno de estos objetos es el objeto COMMAND.
Este objeto command primero se tendrá que crear y luego cargarle dos parametros que
son:
DIM q AS STRING
orden.Parameters("@CLAVE").Value = clave
orden.Parameters("@NOMBRE").Value = nombre
orden.Parameters("@PESO").Value = edad
Observar que para cada variable parametro(@), se tienen que cargar dos
elementos, el valor y el tipo de dato correpondiente.
Date Date data, stored as a double (DBTYPE_DATE). The whole portion is the number
of days since December 30, 1899, while the fractional portion is a fraction of a day. This
maps to DateTime.
Decimal A fixed precision and scale numeric value between -1038 -1 and 10 38 -1
(DBTYPE_DECIMAL). This maps to Decimal.
Double A floating point number within the range of -1.79E +308 through 1.79E +308
(DBTYPE_R8). This maps to Double.
Guid A globally unique identifier (or GUID) (DBTYPE_GUID). This maps to Guid.
Single A floating point number within the range of -3.40E +38 through 3.40E +38
(DBTYPE_R4). This maps to Single.
Variant A special data type that can contain numeric, string, binary, or date data, as well
as the special values Empty and Null (DBTYPE_VARIANT). This type is assumed if no
other is specified. This maps to Object.
Fuente:microsoft net
Aun mas con el ejemplo anterior el objeto COMMAND esta construido y preparado y
cargado pero todavia no se manda desde el programa a la base de datos, es decir le falta
usar las siguientes tres propiedades, ejemplo;
orden.Parameters("@CLAVE").Value = clave
orden.Parameters("@NOMBRE").Value = nombre
orden.Parameters("@PESO").Value = edad
**orden.Connection.Open()**
orden.ExecuteNonQuery()
orden.Connection.Close()
En particular muchos de los programas que se veran en temas posteriores solo usan los
objetos CONNECTION, DATAADAPTER y DATASET.
Ejemplo:
canal.Fill(tabla, "mitabla")
Observar que su propiedad FILL carga el DATASET(tabla) con una de las tablas en
disco, recordar que en la base de datos puede contener muchas tablas.
Ademas esa propiedad FILL es equivalente a las tres ultimas instrucciones del objeto
COMMAND, es decir open, executenonquery y close, mas fácil verdad.
DATAREADER y DATASET:
Observar que tambien se usan en forma conjunta, primero es muy similar en uso y
funcion que el objeto DATAADAPATER, la diferencia entre datareader y dataadapter es
el tipo de base de datos con las cuales se pueden comunicar, dataadpater se especializan
en bases de datos relacionales y datareader se especializa en archivos que no se estudian
en este curso.
Para mandar el dataset a el browser se tendra que pasar a algun tipo de objeto visible
que soporte el browser, los objetos que se pueden usar para mandar el dataset a pantalla
son:
Existen una serie de operaciones y procesos que son muy comunes contra una tabla en
una base de datos en disco la mas comun es desplegar todos los renglones de la tabla
que estan almacenados en disco, a este proceso le llamaremos SELECCION, consulta o
despliegue (muy original).
Como se indico anteriormente la comunicacion con la base de datos se tendran que dar
usando el lenguaje especializado de bases de datos llamado SQL (structured query
language), la instruccion sql que se usa para resolver este problema tiene el siguiente
formato:
3.- Crear el enlace o adapater y cargarlo con la instruccion sql ( o cargar primero la
instruccion sql en un objeto command y mandarlo a travez del adapter)
Codigo prog25.aspx
<FORM RUNAT=SERVER>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/></FORM>
<html>
<script runat=server>
canal.FILL(tabla, "mitabla")
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "mitabla"
TABLAGRID.DATABIND()
coneccion.CLOSE()
END SUB
</script>
corrida prog26.aspx
1.- Se sigue el procedimiento generico para procesar tablas usando ADO.NET
3.- Se usa una PAGINA (page) y su evento pageload() para desplegar la tabla(mitabla)
que esta en la base de datos(mibase), se puede cargar e inicializar usando un objeto
button=desplegar con este mismo codigo cargado en su evento onclick, pero es criterio
de ustedes como se despliega la tabla.
4.- Recordar que DATAGRID es un WEBCONTROL por tanto hay que crearlo e
inicializarlo al principio del programa, tambien recordar que datagrid tiene muchas
propiedades que le mejoran la interfase con que se despliega y es en esta parte donde se
cargan dichas propiedades.
5.- Se empieza creando las variables globales a ocupar y abriendo la coneccion a la base
de datos, si se les hace muy grande la string del provedor, pueden cargarla primero en
una variable string y carguen la string en el constructor de la coneccion, pero esto es
opcional.
7.- Se crea el adapter y se carga el constructor con la instruccion sql y la coneccion, aqui
es necesario entender que existen varias maneras de hacer esto:
Cargar una string con el sql y crear y usar un objeto command directamente por ejemplo
comandtext=stringsql; y luego todavia se tendria que ejecutar con executenonquery(que
ejecuta una string que no regresa datos por ejemplo insert o update para un adpater) o
executereader(si en lugar de usar adapter se usa un reader) o executescalar( metodo que
regresa un solo dato de la base de datos).
Usar algunas de las funciones descritas del adapter por ejemplo
adpatercommandselect(stringsql).
Pero lo mas sencillo fue usar el metodo que se puso en el programa, es decir crear el
adapter y pasarle directamente la instruccion sql.
8.- Luego se creo el dataset y se cargo con toda la base de datos en disco, entender esto
bien, dataset puede quedar cargado con todas las tablas que tenga la base de datos, por
eso se usa un FILL para pasar al dataset solo una de las tablas(mi tabla), esto da origen a
dos notas:
8.2.- Para procesar dos o mas tablas, entonces se tendra que usar mucho el formato que
se vio en la nota 8.1
1.- Programa visual basic net donde construir y desplegar una primera base de datos que
contenga la primera tabla que disenaron en el tema de tablas.
2.- programa visual basic net donde construir una segunda base de datos que contenga
cuando menos tres de las tablas ya disenadas y desplegar cualquiera de ellas usando una
sola forma html, donde el usuario selecciona cual quiere desplegar.
Prog26.aspx
<FORM RUNAT=SERVER>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false/>
</FORM>
<script runat=server>
canal.FILL(tabla, "mitabla")
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "mitabla"
TABLAGRID.DATABIND()
cren = tabla.Tables("mitabla").Rows.Count
nvaclave = tabla.Tables("mitabla").Rows(cren-1)(0) + 1
CLAVE.Text=nvaclave
END SUB
DIM q AS STRING
orden.Parameters("@CLAVE").Value = CLAVE.Text
orden.Parameters("@NOMBRE").Value = NOMBRE.Text
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource=tabla.Tables("mitabla").DefaultView
TABLAGRID.DataBind()
' cargando otra vez la caja de CLAVE y limpiando las otras cajas
cren = tabla.Tables("mitabla").Rows.Count
nvaclave =tabla.Tables("mitabla").Rows(cren-1)(0)+ 1
CLAVE.Text=nvaclave
NOMBRE.Text=""
EDAD.Text=""
coneccion.Close()
END SUB
</script>
corrida prog26.aspx
notas:
Se agregaron tres textboxs arriba del datagrid para capturar los nuevos datos a insertar
en la tabla.
En page_Load es el mismo codigo del programa anterior solo al final se usa el metodo
row.count de dataset.tables[recuerdan la nota 8 del tema anterior] para conocer cuantos
renglones tiene la tabla.
Con esta informacion ya se puede leer la primera columna ( la cero 0 desde luego) para
sacar el dato de la ultima clave.
El metodo devolvio el valor de la ultima clave que esta en el ultimo renglon de la tabla,
pero en string.
Otra vez, en este ejemplo para mandar la instruccion sql a la base de datos, se crea y se
usa un objeto command (llamado orden) que lleva como datos la string q y la
coneccion, pero se agregan tres metodos command.parametro (orden.parameters()), en
estos metodos se cargan las variables parametro primero con el valor de dato del textbox
asp y luego se transforman al tipo de dato apropiado usando los oledbtype(que hay que
estudiar porque se tienen que asociar directamente a los tipos de datos que se usaron en
access).
1.- construir muchos programas visual basic net de inserccion en las tablas de las bases
de datos que tengan construidas
La solucion es sencilla, solo usar otra vez la instruccion sql select con el siguiente
formato:
Codigo prog27.aspx
<FORM RUNAT=SERVER>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/></FORM>
<script runat=server>
DIM q AS STRING
canal.SelectCommand.Parameters.Add(new OleDbParameter("@CLAVE",
OleDbType.Integer))
canal.SelectCommand.Parameters("@CLAVE").Value = CLAVE.Text
canal.FILL(tabla, "mitabla")
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "mitabla"
TABLAGRID.DATABIND()
coneccion.CLOSE()
END SUB
</script>
notas:
no hay nada nuevo es una combinacion de los dos programas anteriores con las mismas
notas, solo se usa un textbox asp para pedir la clave, aunque se puede usar cualquier
campo para buscar.
Corrida prog27.aspx
TAREAS VISUAL BASIC NET
1.- hacer programas visual basic net de busquedas para las bases de datos hechas
Por ejemplo todos los estudiantes que sean mayores de 17 anos, todos los clientes que
sean de Tijuana, etc., a esto le llamamos filtros o condiciones.
Codigo prog28.aspx
<FORM RUNAT=SERVER>
EDAD >= QUE<ASP:TEXTBOX ID=EDAD SIZE=3 RUNAT=SERVER/>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/></FORM>
<script runat=server>
DIM q AS STRING
canal.SelectCommand.Parameters.Add(new OleDbParameter("@EDAD",
OleDbType.Integer))
canal.SelectCommand.Parameters("@EDAD").Value = EDAD.Text
canal.FILL(tabla, "mitabla")
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = "mitabla"
TABLAGRID.DATABIND()
coneccion.CLOSE()
END SUB
</script>
Nota: siguen siendo combinaciones de los programas anteriores pero seria prudente
mejor usar dos combobox uno para la variable, otro para el operador relacional y un text
para el dato y mandar estos tres datos al prog28.aspx (se ocupan varios
command.parameters()), pero eso queda de tarea.
Recordar tambien que bases de datos en microsoft net es solamente SQL SQL SQL y se
han usado tres versiones de select, por ejemplo si se usa en un programa:
[ ] = optional
Corrida prog28.aspx
TAREAS VISUAL BASIC NET
1.- preparar programas visual basic net de filtrado para sus bases de datos , recordar que
sus formas aspx deben construirlas con 2 combobox y un textbox suerte
Este es tambien un caso comun con elementos de una tabla, sin embargo es tambien
facil de resolver.
1.- Recordar que el numero de columna en una tabla empieza en 0, esto es que para
realizar alguna operacion por ejemplo la columna edad del ejemplo que estamos
siguiendo, su numero de columna es la 2.
2.- La operacion que se plantee se puede realizar con todos los renglones de la tabla o
con un solo renglon de la tabla(del dataset), para procesar todos los renglones se usa un
ciclo for, si solo se quiere procesar un solo renglon o una celda o columna nada mas,
solo recordar GET-SET y solo usar un tabla.tables.rows®© con los metodos strings
apropiados.
3.- Para realizar aritmetica con toda una columna, solo usar el GET-SET de
tabla.tables.rows(ren)(col) para leer(get)o cargar(set), en leer recordar que saldra una
string y en cargar recordar que se tendra que cargar tambien una string, otra vez;
5.- En el ejemplo se realiza la operacion con todos los renglonesde la tabla y no olvidar
que se tiene que usar la instruccion sql Update para que la nueva informacion se
actualize en disco, recordar que los cambios que se hacen a la tabla, es realmente al
dataset, que a su vez es una tabla o base de datos en la memoria de la maquina del
cliente o usuario, y estos cambios hay que actualizarlos o pasarlos o UPDATE a la base
de datos en disco.
Prog29.aspx
<FORM RUNAT=SERVER>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/></FORM>
<script runat=server>
’ cargando el dataset
canal.FILL(tabla, “mitabla”)
’ cargando el datagrid
TABLAGRID.DATASOURCE = tabla
TABLAGRID.DATAMEMBER = “mitabla”
TABLAGRID.DATABIND()
’ cerrando conneccion
coneccion.CLOSE()
END SUB
SUB SUMAR(Sender As Object, E As EventArgs)
’ variables a usar
DIM q AS STRING
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
‘refrescando el datagrid
TABLAGRID.DataSource = tabla
TABLAGRID.DataMember= “mitabla”
TABLAGRID.DataBind()
END SUB
</script>
</code>
Corrida prog29.aspx
TAREAS VISUAL BASIC NET
1.- un programa visual basic net donde construir una tabla en microsoft access que
traiga matricula, nombre, calif1, calif2, calif3 y promedio, cargar en access unos 5
renglones de alumnos, no cargar promedio, el promedio lo deberan calcular con un aspx
Eliminacion es otro proceso simple y comun con las bases de datos el modelo con
ADO.NET que estamos usando hace este tipo de operaciones muy faciles:
Prog30.aspx
<FORM RUNAT=SERVER>
CLAVE A BORRAR<ASP:TEXTBOX ID=CLAVE SIZE=3 RUNAT=SERVER/>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false />
</FORM>
<script runat=server>
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource = tabla
TABLAGRID.DataMember = "mitabla"
TABLAGRID.DataBind()
END SUB
DIM q AS STRING
' instruccion sql DELETE FROM TABLA WHERE CLAVE=DATO
orden.Parameters("@CLAVE").Value = CLAVE.Text
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource=tabla.Tables("mitabla").DefaultView
TABLAGRID.DataBind()
CLAVE.Text=""
END SUB
</script>
corrida prog30.aspx
CUIDAR Y MEJOR VALIDEN EN PROGRAMA QUE LA CLAVE A BORRAR
EXISTA EN EL DATASET O TENDRAN UN ERROR DE SQL Y MAS
IMPORTANTE AUN SE TENDRA QUE RESETEAR EL SERVIDOR, ESTO LO
NOTARAN CUANDO ENCUENTREN CON EL FTP UN ARCHIVO EN SU
DIRECTORIO LLAMADO MIBASE.LDB QUE NO LO PODRAN ELIMINAR
HASTA QUE YO RESETEE EL SERVIDOR ESTAN AVISADOS.
1.- construir en visual basic net este proceso para las tablas y bases de datos que tengan
construidas en ASPX
Editar registros significa cambiar el contenido de algunos de los campos o columnas por
nueva informacion o para corregir algun error de captura original o para agregar alguna
columna que no existia por modificacion de la tabla o la base de datos.
En general se tiene otro problema de sql UPDATE, sin embargo ahora se aprovechan
algunos elementos nuevos del objeto datagrid, como son la capacidad que tiene de
crearle columnas de edicion a los renglones que muestra el dataset, estas columnas de
edicion traen sus propios metodos, mismos que se pueden cargar con codigo para
procesar.
Prog31.aspx
<HTML>
DespTabla()
end if
END SUB
SUB DespTabla()
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource=tabla
TABLAGRID.DataMember="mitabla"
TABLAGRID.DataBind()
END SUB
TABLAGRID.EditItemIndex = E.Item.ItemIndex
DespTabla()
END SUB
TABLAGRID.EditItemIndex = -1
DespTabla()
END SUB
DIM q AS STRING
orden.Parameters("@CLAVE").Value =
TABLAGRID.DataKeys(E.Item.ItemIndex)
DIM i AS Integer
FOR i=1 to 3
datocajas = micaja.Text
orden.Parameters(nomcajas(i-1)).Value = Server.HtmlEncode(datocajas)
NEXT i
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
DespTabla()
END SUB
</script>
<form runat="server">
Width="400"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
OnEditCommand="DataGrid_Edit"
OnCancelCommand="DataGrid_Cancel"
OnUpdateCommand="DataGrid_Update"
DataKeyField="clave"
<Columns>
</Columns>
</ASP:DataGrid>
</form>
</body>
</html>
Observar que ahora el datagrid incluye una columna de edicion especial, revisar la parte
del codigo de propiedades del datagrid en el programa y las nuevas propiedades que se
le agregaron.
Un registro editado o modificado en visual basic net , analizar con cuidado el codigo del
programa, que esta documentado, suerte
1.- con visual basic net construir aspx de edicion para sus tablas y bases de datos
Para manejar este elemento con ado asp net existen dos maneras:
1.- Agregar un campo BLOB a la tabla en microsoft access y usar componentes asp net
especializados en imagenes tanto para subirlas como para desplegar la imagen.
Este metodo provoca que la base de datos crezca mucho recordar que una imagen aun
de tipo jpg ocupa mucho espacio.
2.- El segundo metodo es mas sencillo, primero subir las imagenes ( de preferencia jpg )
con un ftp normal a tusitio y despues agregar un objeto asp net imageurl(recordar que en
la primera unidad se indico que estudiaran todos los objetos webcontrol )en el programa
y ademas agregar un campo de texto llamado fotourl o foto a la tabla en microsoft
access y grabar la direccion http de la imagen en este campo, por ejemplo
http://programacionfacil.com/tusitio/pato.jpg aunque si estan juntos el aspx y el jpg se
puede usar solo pato.jpg directamente.
Despues solo cargar este objeto asp net imageurl en la pagina que se construira que no
es otra cosa que el programa de busqueda con el despliegue del campo extra, como lo
muestra el programa ejemplo.
Prog32.aspx
<FORM RUNAT=SERVER>
Width=400
BackColor=#ccccff
BorderColor=black
ShowFooter=false
CellPadding=3
CellSpacing=0
Font-Name=Verdana
Font-Size=8pt
HeaderStyle-BackColor=#aaaadd
EnableViewState=false
/>
</FORM>
<html>
<script runat=server>
DIM q AS String
canal.SelectCommand.Parameters.Add(new OleDbParameter("@CLAVE",
OleDbType.Integer))
canal.SelectCommand.Parameters("@CLAVE").Value = CLAVE.Text
canal.Fill(tabla, "mitabla")
TABLAGRID.DataSource=tabla
TABLAGRID.DataMember="mitabla"
TABLAGRID.DataBind()
'cargando el objeto imageurl
FOTO.ImageUrl=tabla.Tables("mitabla").Rows(0)(3).ToString()
END SUB
</script>
corrida: prog32.aspx
Recordar que para que no salga el campo fotourl en el datagrid el select de sql puede
pedirse como select campo1, campo2, campo.. from mitabla etcetera.
tan tan el curso se acabo y esten pendiente de los proximos de sql mysql perl php
perlscript javascript jscript xml c# net et al
If the query is used to retrieve data, the data will be returned as a RecordSet object. This
means that the retrieved data can be manipulated by properties, collections, methods,
and events of the Recordset object.
The major feature of the Command object is the ability to use stored queries and
procedures with parameters.
ProgID
set objCommand=Server.CreateObject(”ADODB.command”)
Properties
Property Description
Sets or returns a definition for a connection if the connection is
ActiveConnection
closed, or the current Connection object if the connection is open
CommandText Sets or returns a provider command
Sets or returns the number of seconds to wait while attempting to
CommandTimeout
execute a command
CommandType Sets or returns the type of a Command object
Name Sets or returns the name of a Command object
Sets or returns a Boolean value that, if set to True, indicates that the
Prepared command should save a prepared version of the query before the first
execution
Returns a value that describes if the Command object is open, closed,
State
connecting, executing or retrieving data
Methods
Method Description
Cancel Cancels an execution of a method
CreateParameter Creates a new Parameter object
Executes the query, SQL statement or procedure in the CommandText
Execute
property
Collections
Collection Description
Parameters Contains all the Parameter objects of a Command Object
Properties Contains all the Property objects of a Command Object
Connection Object
The ADO Connection Object is used to create an open connection to a data source.
Through this connection, you can access and manipulate a database.
If you want to access a database multiple times, you should establish a connection using
the Connection object. You can also make a connection to a database by passing a
connection string via a Command or Recordset object. However, this type of connection
is only good for one specific, single query.
ProgID
set objConnection=Server.CreateObject(”ADODB.connection”)
Properties
Property Description
Attributes Sets or returns the attributes of a Connection object
Sets or returns the number of seconds to wait while attempting to
CommandTimeout
execute a command
Sets or returns the details used to create a connection to a data
ConnectionString
source
Sets or returns the number of seconds to wait for a connection to
ConnectionTimeout
open
CursorLocation Sets or returns the location of the cursor service
DefaultDatabase Sets or returns the default database name
IsolationLevel Sets or returns the isolation level
Mode Sets or returns the provider access permission
Provider Sets or returns the provider name
State Returns a value describing if the connection is open or closed
Version Returns the ADO version number
Methods
Method Description
BeginTrans Begins a new transaction
Cancel Cancels an execution
Close Closes a connection
CommitTrans Saves any changes and ends the current transaction
Execute Executes a query, statement, procedure or provider specific text
Open Opens a connection
OpenSchema Returns schema information from the provider about the data source
RollbackTrans Cancels any changes in the current transaction and ends the transaction
Events
Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual
C++, and Visual J++ languages can handle events).
Event Description
BeginTransComplete Triggered after the BeginTrans operation
CommitTransComplete Triggered after the CommitTrans operation
ConnectComplete Triggered after a connection starts
Disconnect Triggered after a connection ends
ExecuteComplete Triggered after a command has finished executing
Triggered if a warning occurs during a ConnectionEvent
InfoMessage
operation
RollbackTransComplete Triggered after the RollbackTrans operation
WillConnect Triggered before a connection starts
WillExecute Triggered before a command is executed
Collections
Collection Description
Errors Contains all the Error objects of the Connection object
Properties Contains all the Property objects of the Connection object
Error Object
The ADO Error object contains details about data access errors that have been generated
during a single operation.
ADO generates one Error object for each error. Each Error object contains details of the
specific error, and are stored in the Errors collection. To access the errors, you must
refer to a specific connection.
Syntax
objErr.property
Properties
Property Description
Description Returns an error description
HelpContext Returns the context ID of a topic in the Microsoft Windows help system
HelpFile Returns the full path of the help file in the Microsoft Windows help system
NativeError Returns an error code from the provider or the data source
Number Returns a unique number that identifies the error
Source Returns the name of the object or application that generated the error
SQLState Returns a 5-character SQL error code
Field Object
The ADO Field object contains information about a column in a Recordset object. There
is one Field object for each column in the Recordset.
ProgID
set objField=Server.CreateObject(”ADODB.field”)
Properties
Property Description
ActualSize Returns the actual length of a field’s value
Attributes Sets or returns the attributes of a Field object
DefinedSize Returns the defined size of a field
Name Sets or returns the name of a Field object
Sets or returns the number of decimal places allowed for numeric
NumericScale
values in a Field object
OriginalValue Returns the original value of a field
Sets or returns the maximum number of digits allowed when
Precision
representing numeric values in a Field object
Status Returns the status of a Field object
Type Sets or returns the type of a Field object
UnderlyingValue Returns the current value of a field
Value Sets or returns the value of a Field object
Methods
Method Description
AppendChunk Appends long binary or character data to a Field object
Returns all or a part of the contents of a large text or binary data Field
GetChunk
object
Collections
Collection Description
Properties Contains all the Property objects for a Field object
Parameter Object
The ADO Parameter object provides information about a single parameter used in a
stored procedure or query.
Parameters can be used to create Parameterized Commands. These commands are (after
they have been defined and stored) using parameters to alter some details of the
command before it is executed. For example, an SQL SELECT statement could use a
parameter to define the criteria of a WHERE clause.
There are four types of parameters: input parameters, output parameters, input/output
parameters and return parameters.
Syntax
Properties
Property Description
Attributes Sets or returns the attributes of a Parameter object
Direction Sets or returns how a parameter is passed to or from a procedure
Name Sets or returns the name of a Parameter object
Sets or returns the number of digits stored to the right side of the decimal
NumericScale
point for a numeric value of a Parameter object
Sets or returns the maximum number of digits allowed when representing
Precision
numeric values in a Parameter
Sets or returns the maximum size in bytes or characters of a value in a
Size
Parameter object
Type Sets or returns the type of a Parameter object
Value Sets or returns the value of a Parameter object
Methods
Method Description
AppendChunk Appends long binary or character data to a Parameter object
Delete Deletes an object from the Parameters Collection
Property Object
The ADO Property object represents a dynamic characteristic of an ADO object that is
defined by the provider.
Each provider that talks with ADO has different ways of interacting with ADO.
Therefore, ADO needs to store information about the provider in some way. The
solution is that the provider gives specific information (dynamic properties) to ADO.
ADO stores each provider property in a Property object that is again stored in the
Properties Collection. The Collection is assigned to either a Command object,
Connection object, Field object, or a Recordset object.
ProgID
set objProperty=Server.CreateObject(”ADODB.property”)
Properties
Property Description
Attributes Returns the attributes of a Property object
Name Sets or returns a the name of a Property object
Type Returns the type of a Property object
Value Sets or returns the value of a Property object
The Record object allows access to data-sets where the number of columns and/or the
data type can be different from row to row.
Syntax
Properties
Property Description
ActiveConnection Sets or returns which Connection object a Record object belongs to
Mode Sets or returns the permission for modifying data in a Record object
ParentURL Returns the absolute URL of the parent Record
RecordType Returns the type of a Record object
Sets or returns the src parameter of the Open method of a Record
Source
object
State Returns the status of a Record object
Methods
Method Description
Cancels an execution of a CopyRecord, DeleteRecord, MoveRecord, or
Cancel
Open call
Close Closes a Record object
CopyRecord Copies a file or directory to another location
DeleteRecord Deletes a file or directory
Returns a Recordset object where each row represents the files in the
GetChildren
directory
MoveRecord Moves a file or a directory to another location
Open Opens an existing Record object or creates a new file or directory
Collections
Collection Description
Properties A collection of provider-specific properties
Fields Contains all the Field objects in the Record object
Property Description
Returns the number of items in the fields collection. Starts at
Count
zero. Example: countfields = rec.Fields.Count
Returns a specified item in the fields collection. Example:
itemfields = rec.Fields.Item(1)
Item(named_item/number)
or
itemfields = rec.Fields.Item(”Name”)
Recordset Object
The ADO Recordset object is used to hold a set of records from a database table. A
Recordset object consist of records and columns (fields).
In ADO, this object is the most important and the most used object to manipulate data
from a database.
ProgID
set objRecordset=Server.CreateObject(”ADODB.recordset”)
When you first open a Recordset, the current record pointer will point to the first record
and the BOF and EOF properties are False. If there are no records, the BOF and EOF
property are True.
• Immediate updating - all changes are written immediately to the database once
you call the Update method.
• Batch updating - the provider cache multiple changes and then send them to the
database with the UpdateBatch method.
• Dynamic cursor - Allows you to see additions, changes, and deletions by other
users.
• Keyset cursor - Like a dynamic cursor, except that you cannot see additions by
other users, and it prevents access to records that other users have deleted. Data
changes by other users will still be visible.
• Static cursor - Provides a static copy of a recordset for you to use to find data or
generate reports. Additions, changes, or deletions by other users will not be
visible. This is the only type of cursor allowed when you open a client-side
Recordset object.
• Forward-only cursor - Allows you to only scroll forward through the Recordset.
Additions, changes, or deletions by other users will not be visible.
The cursor type can be set by the CursorType property or by the CursorType parameter
in the Open method.
Note: Not all providers supports all methods or properties of the Recordset object.
Properties
Property Description
Sets or returns a value that specifies the page number in the Recordset
AbsolutePage
object
Sets or returns a value that specifies the ordinal position of the current
AbsolutePosition
record in the Recordset object
ActiveCommand Returns the Command object associated with the Recordset
Sets or returns a definition for a connection if the connection is
ActiveConnection
closed, or the current Connection object if the connection is open
Returns true if the current record position is before the first record,
BOF
otherwise false
Sets or returns a bookmark. The bookmark saves the position of the
Bookmark
current record
CacheSize Sets or returns the number of records that can be cached
CursorLocation Sets or returns the location of the cursor service
CursorType Sets or returns the cursor type of a Recordset object
Sets or returns the name of the data member that will be retrieved
DataMember
from the object referenced by the DataSource property
Specifies an object containing data to be represented as a Recordset
DataSource
object
EditMode Returns the editing status of the current record
Returns true if the current record position is after the last record,
EOF
otherwise false
Filter Sets or returns a filter for the data in a Recordset object
Index Sets or returns the name of the current index for a Recordset object
Sets or returns a value that specifies the type of locking when editing
LockType
a record in a Recordset
Sets or returns a value that specifies which records are to be returned
MarshalOptions
back to the server
Sets or returns the maximum number of records to return to a
MaxRecords
Recordset object from a query
PageCount Returns the number of pages with data in a Recordset object
Sets or returns the maximum number of records allowed on a single
PageSize
page of a Recordset object
RecordCount Returns the number of records in a Recordset object
Sort Sets or returns the field names in the Recordset to sort on
Sets a string value or a Command object reference, or returns a String
Source
value that indicates the data source of the Recordset object
Returns a value that describes if the Recordset object is open, closed,
State
connecting, executing or retrieving data
Returns the status of the current record with regard to batch updates
Status
or other bulk operations
Sets or returns whether the reference to the child records will change
StayInSync
when the parent record position changes
Methods
Method Description
AddNew Creates a new record
Cancel Cancels an execution
CancelBatch Cancels a batch update
CancelUpdate Cancels changes made to a record of a Recordset object
Clone Creates a duplicate of an existing Recordset
Close Closes a Recordset
CompareBookmarks Compares two bookmarks
Delete Deletes a record or a group of records
Searches for a record in a Recordset that satisfies a specified
Find
criteria
Copies multiple records from a Recordset object into a two-
GetRows
dimensional array
GetString Returns a Recordset as a string
Move Moves the record pointer in a Recordset object
MoveFirst Moves the record pointer to the first record
MoveLast Moves the record pointer to the last record
MoveNext Moves the record pointer to the next record
MovePrevious Moves the record pointer to the previous record
Clears the current Recordset object and returns the next Recordset
NextRecordset
object by looping through a series of commands
Opens a database element that gives you access to records in a
Open
table, the results of a query, or to a saved Recordset
Updates the data in a Recordset by re-executing the query that
Requery
made the original Recordset
Refreshes the data in the current Recordset from the original
Resync
database
Save Saves a Recordset object to a file or a Stream object
Searches the index of a Recordset to find a record that matches the
Seek
specified values
Returns a boolean value that defines whether or not a Recordset
Supports
object supports a specific type of functionality
Update Saves all changes made to a single record in a Recordset object
Saves all changes in a Recordset to the database. Used when
UpdateBatch
working in batch update mode
Events
Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual
C++, and Visual J++ languages can handle events).
Event Description
Triggered when you try to move to a record after the last
EndOfRecordset
record
Triggered after all records in an asynchronous operation
FetchComplete
have been fetched
Triggered periodically in an asynchronous operation, to state
FetchProgress
how many more records that have been fetched
FieldChangeComplete Triggered after the value of a Field object change
Triggered after the current position in the Recordset has
MoveComplete
changed
RecordChangeComplete Triggered after a record has changed
RecordsetChangeComplete Triggered after the Recordset has changed
WillChangeField Triggered before the value of a Field object change
WillChangeRecord Triggered before a record change
WillChangeRecordset Triggered before a Recordset change
Triggered before the current position in the Recordset
WillMove
changes
Collections
Collection Description
Fields Indicates the number of Field objects in the Recordset object
Properties Contains all the Property objects in the Recordset object
Property Description
Returns the number of items in the fields collection. Starts at
Count
zero. Example: countfields = rs.Fields.Count
Returns a specified item in the fields collection. Example:
itemfields = rs.Fields.Item(1)
Item(named_item/number)
or
itemfields = rs.Fields.Item(”Name”)
Property Description
Returns the number of items in the properties collection.
Count
Starts at zero. Example: countprop = rs.Properties.Count
Returns a specified item in the properties collection.
Example: itemprop = rs.Properties.Item(1)
Item(named_item/number)
or
itemprop = rs.Properties.Item(”Name”)
Syntax
Properties
Property Description
Sets or returns a value that specifies into which character set the contents
CharSet are to be translated. This property is only used with text Stream objects
(type is adTypeText)
EOS Returns whether the current position is at the end of the stream or not
LineSeparator Sets or returns the line separator character used in a text Stream object
Mode Sets or returns the available permissions for modifying data
Sets or returns the current position (in bytes) from the beginning of a
Position
Stream object
Size Returns the size of an open Stream object
State Returns a value describing if the Stream object is open or closed
Type Sets or returns the type of data in a Stream object
Methods
Method Description
Cancel Cancels an execution of an Open call on a Stream object
Close Closes a Stream object
Copies a specified number of characters/bytes from one Stream object
CopyTo
into another Stream object
Sends the contents of the Stream buffer to the associated underlying
Flush
object
LoadFromFile Loads the contents of a file into a Stream object
Open Opens a Stream object
Reads the entire stream or a specified number of bytes from a binary
Read
Stream object
Reads the entire stream, a line, or a specified number of characters from a
ReadText
text Stream object
SaveToFile Saves the binary contents of a Stream object to a file
SetEOS Sets the current position to be the end of the stream (EOS)
SkipLine Skips a line when reading a text Stream
Write Writes binary data to a binary Stream object
WriteText Writes character data to a text Stream object