Cómo iterar en un DataTable

Para iterar en un DataTable usa el siguiente código.

  1. Dim tabla as new DataTable()
  2. Dim Renglon as DataRow
  3. For Each Renglon in tabla.Rows
  4.  'Haz algo con Renglon("NombreDeColumna")
  5. Next

The MaximumValue cannot be less than the MinimumValue

Cuando creas un RangeValidator en una aplicación ASP.NET debes recordar establecer el tipo de dato que estás comparando.

Este es un ejemplo de un error común. Tenemos el siguiente validador:

  1. <asp:RangeValidator
  2.   ID="ValidadorMinimo"
  3.   runat="server"
  4.   ControlToValidate="NumberOfPersons"
  5.   CssClass="validador"
  6.   ErrorMessage="Minimum"
  7.   ForeColor=""
  8.   MinimumValue="2"
  9.   MaximumValue="10" >*</asp:RangeValidator>

Al abrir la página aspx que lo contiene, obtenemos el siguiente error:

The MaximumValue 10 cannot be less than the MinimumValue 2 of ValidadorMinimo.

Lo que está ocurriendo es que por default el tipo de datos es String, y hablando de cadenas de texto, el 10 es menor que el 2.

Como queremos comparar números enteros, debemos establecer la propiedad Type del validador a Integer, de esta manera:

  1. <asp:RangeValidator
  2.   ID="ValidadorMinimo"
  3.   runat="server"
  4.   ControlToValidate="NumberOfPersons"
  5.   CssClass="validador"
  6.   ErrorMessage="Minimum"
  7.   ForeColor=""
  8.   MinimumValue="2"
  9.   MaximumValue="10"
  10.   Type="Integer"
  11.   >*</asp:RangeValidator>

Templates de Dreamweaver y páginas ASP.NET con código code-behind

Existe una situación extraña cuando trabajas en un sitio web con plantillas de Dreamweaver y con ASP.NET 2.

Cuando añades una nueva página aspx, la primera línea del código es algo similar a esto:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Contacto.aspx.vb" Inherits="Contacto" %>

Si esta página está controlada por un template de Dreamweaver, y tú modificas ese template, y luego aplicas los cambios, notarás que Dreamweaver elimina la citada línea del archivo. Lo cual simplemente hace que tu página ASP.NET no funcione más.

Puedes regresar a Visual Web Developer (o la herramienta de ASP.NET que utilices) y volver a ponerle la línea eliminada, pero si tienes muchas páginas esto puede ser una pesadilla.

Encontré un post en un foro con una solución que supuse no iba a funcionar, pero la probé y de hecho sirve!

A tus páginas aspx añádeles esta línea después de la línea de declaración:

<%--'comment--%>

De tal forma que te quede algo como esto:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Contacto.aspx.vb" Inherits="Contacto" %>
<%--'comment--%>

Ahora pruébalo para que veas como funciona. Haz cualquier cambio a tu template de Dreamweaver, aplica el template a las páginas basadas en él, y verás que la línea permanece intacta, haciendo que la aplicación siga funcionando sin problemas.

Trabajar con un ArrayList

El ArrayList me resulta ser más útil que el Array regular.

Aquí hay algunos ejemplos:

Declaración de un ArrayList

  1. Dim AL As ArrayList = New ArrayList

Añadir un elemento

  1. AL.Add("hola")

Ordenarlo

  1. AL.Sort()

Ordenarlo al revés

  1. AL.Reverse()

Remover duplicados

  1. Shared Function RemoverDuplicados(ByVal ElArreglo As ArrayList) As ArrayList
  2.     Dim ret As ArrayList = New ArrayList()
  3.     Dim elemento As Object
  4.     For Each elemento In ElArreglo
  5.         If Not ret.Contains(elemento) Then
  6.             ret.Add(elemento)
  7.         End If
  8.     Next
  9.     RemoverDuplicados = ret
  10. End Function