miércoles, 13 de julio de 2011

Video de como crear la red PERT de actividades indicadas con letras o nombres

GridView anidado en ASP .Net

En ocasiones, en nuestras aplicaciones web con ASP .Net necesitamos mostrar datos en una cuadricula pero agrupando algunos registros. Algo así como el típico caso de Maestro Detalle, pero el detalle dentro de la misma grilla. En ASP .Net esto se resuelve fácilmente con el control GridView, para obtener el resultado siguente:
GridView Anidado
El gráfico anterior muestra a un GridView que muestra los datos como maestro detalle. Ahora veremos como es posible hacer esto en una aplicación.
En el caso anterior, la grilla principal tiene 3 columnas, una para el Id. Cat., la segunda para la Categoría y la tercera, será un Template que contendrá otro GridView en su ItemTemplate, esa es la parte fácil; la parte más fácil se da en el evento RowDataBound del GridView principal, ya que este evento se ejecuta cada vez que se enlaza una fila del gridview a los datos que mostrará.
Ya en este evento lo que se debe hacer es simplemente crear una vista de la tabla de detalle filtrando los datos que necesitamos por el id de la tabla maestro. Para poder acceder al GridView que se encuentra en la tercera columnna de la grilla principal simplemente aplicamos una conversión del objeto en la coluna correspondiente, tal y como se muestra en la linea:
GridView gdv = (GridView)e.Row.Cells[2].FindControl(“gdvProductos”);
Hay que considerar que el evento RowDataBoundse ejecuta segun la cantidad de registros que se muestran en el GirdView es decir, si tu GridView tiene 10 filas, este evento se ejecutará 10 veces.
Y el título de las cabeceras? Pues eso es mas fácil aún, se trata de dibujar la tabla HTML dentro de las etiquetas HeaderTemplate de la tercera columna y listo!
Espero que les sea de utilidad.

Funciones de conversión de tipos

http://msdn.microsoft.com/es-es/library/s2dy91zy%28v=vs.80%29.aspx

martes, 12 de julio de 2011

Leer un archivo de texto mediante System.IO y Visual C# .NET

Leer archivos de texto en Visual C# .NET

La apertura y lectura de archivos para el acceso de lectura es una parte importante de la funcionalidad de entrada y salida (ES), incluso si no necesita escribir en el archivo en cuestión. En este ejemplo se abre un archivo para su lectura, lo que resulta útil para leer archivos de texto, pero que es inapropiado en el caso de archivos binarios. En este ejemplo se utiliza uno de los varios métodos disponibles para abrir el archivo. Aunque muchas de las estructuras de datos están disponibles para almacenar información que se recupera del archivo, la clase ArrayList es la estructura más fácil de utilizar. Para abrir y leer el archivo, en este ejemplo se utilizan objetos del espacio de nombres System.IO, en concreto la clase System.IO.StreamReader.

NOTA: en este ejemplo se requiere una forma determinada de archivo de texto (.txt) desde la que leer.

Para cargar y leer un archivo de texto desde Visual C# .NET, siga estos pasos:
  1. Abra Visual Studio .NET. Cree una nueva aplicación de consola en C#. Visual Studio crea una Clase estática y un procedimiento Main() vacío.
  2. Asegúrese de que el proyecto hace referencia al menos al espacio de nombres System. Utilice la instrucción using en los espacios de nombres System, System.IO y System.Collections de forma que no tenga que calificar las declaraciones de esos espacios de nombres más adelante en el código. Debe utilizar estas instrucciones antes que cualquier otra declaración.
    using System;
    using System.IO;
    using System.Collections;
  3. Para abrir un archivo y leerlo, cree una nueva instancia de un objeto StreamReader y pase la ruta del archivo en el constructor de la siguiente manera:
    StreamReader objReader = new StreamReader("c:\\test.txt");
  4. Necesitará una variable de cadena en la que almacenar cada una de las líneas del archivo a medida que avanza en el proceso. Puesto que agregará estas líneas a un objeto ArrayList, debe declarar y crear un objeto de este tipo también.
    string sLine="";
    ArrayList arrText = new ArrayList();
  5. Existen varios métodos para leer el archivo, incluido el método ReadToEnd que lee todo el archivo de una vez. Sin embargo, para este ejemplo, puede utilizar el método ReadLine para que las líneas del archivo se muestren de una en una. Al llegar al final del archivo, este método devuelve un valor nulo, lo que permite terminar el bucle. Mientras lee cada línea del archivo, puede utilizar el método Add de ArrayList para insertar las líneas en la clase ArrayList.
    while (sLine != null)
    {
     sLine = objReader.ReadLine();
     if (sLine != null)
      arrText.Add(sLine);
    }
    objReader.Close();
  6. Utilice un bucle For Each para escribir el contenido del objeto ArrayList recién relleno en la consola de la siguiente manera:
    foreach (string sOutput in arrText)
     Console.WriteLine(sOutput);
    Console.ReadLine();
  7. Guarde y ejecute el código, que genera un listado del archivo en la consola.
 

Lista completa de código

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
 /// <summary>
 /// Descripción de resumen para Class1.
 /// </summary>
 class Class1
 {
  static void Main(string[] args)
  {
   StreamReader objReader = new StreamReader("c:\\test.txt");
   string sLine="";
   ArrayList arrText = new ArrayList();

   while (sLine != null)
   {
    sLine = objReader.ReadLine();
    if (sLine != null)
     arrText.Add(sLine);
   }
                        objReader.Close();

   foreach (string sOutput in arrText)
    Console.WriteLine(sOutput);
   Console.ReadLine();
  }
 }
}
 

Errores

Debe prestar atención a varios elementos a la hora de trabajar con la E/S de archivos, entre ellos los siguientes:
  • Cada vez que tenga acceso a un archivo, existe la posibilidad de que el archivo que está intentando leer o en el que intenta escribir no se encuentre en el sistema o esté en uso.
  • En este ejemplo se inserta todo el archivo en la memoria antes de que ésta lo procese. Puede encontrarse con una situación en la que el archivo sea demasiado grande para guardarlo en memoria, o puede que no tenga permisos para obtener acceso al archivo.
Cualquiera de estas situaciones puede hacer que se provoque una excepción. Siempre es conveniente proporcionar un bucle try...catch para tratar estos problemas frecuentes.

Cómo agregar o restar la hora con un tipo de datos DateTime

En este artículo se describe cómo agregar o restar la hora con un campo DateTime. Tiempo en segundos, se puede agregar o restar con un campo de tipo de datos DateTime. Tiempo lleva a través de segundos minutos horas días a años. No hay ajustes en este ejemplo para un año bisiesto. Éste es un ejemplo y desea agregar funcionalidad adicional si los cálculos de tiempo son una gran parte de la aplicación.

Al agregar o restar la hora con un campo DateTime, se calcularán los valores par...

Al agregar o restar la hora con un campo DateTime, se calcularán los valores para sumar o restar con segundos.

Ejemplo para agregar una hora:
HourFromNow = Datetime() + 3600
    
- o bien -

Ejemplo restar una semana:
WeekAgo = Datetime() - (7*24*3600)
    

Problemas con acentos al leer ficheros texto C#

Al leer ficheros de texto cuando aparecen letras con acento o 'ñ' no me los
reconoce y los ignora,

como se puede corregir esto ??

En la instrucción que abre el fichero tienes que especificar el tipo de
codificación con el que está grabado, ya que las eñes y otros caracteres
especiales tienen distinto código dependiendo del juego de caracteres que se
use. Por ejemplo, si usas un StreamReader para leer el fichero:

StreamReader sr = new StreamReader(fichero,
System.Text.Encoding.GetEncoding(1252));
string contenido = sr.ReadToEnd();
sr.Close();

Aquí hemos usado el encoding 1252 que es el más habitual de Windows,
pero si tu fichero tiene otra codificación, por ejemplo, UTF-8, tendrás que
poner el Encoding que corresponda (System.Text.Encoding.UTF8).

Leer un fichero de texto en C# .NET reconociendo tildes (acentos) y otros signos especiales

Esto consiste en un proceso muy sencillo pero se nos puede complicar si somos algo novatos o venimos de Java y estamos acostumbrados a lo fácil.

Para empezar, C# .NET posee un mecanismo de lectura de ficheros de texto muy eficiente, siendo éste el siguiente:
// Método para procesar un fichero
public void procesarFichero()
{
// Definimos un StreamReader
StreamReader lector;
string linea = "";

try{
lector = File.OpenText(fichero);

// Lee linea a linea
while ( (linea = lector.ReadLine()) != null){
//hacemos lo que queramos
}
// Cerramos la conexion
lector.Close();
}
catch (Exception e){
System.Console.WriteLine("Problemas al cargar el fichero.{0}", e);
}
}

El problema viene si al llevar a cabo el proceso de lectura, podemos observar que los string resultado no incorporan caracteres especiales como por ejemplo las tildes y acentos de otro tipo.
La causa de este problema es que el descriptor que hemos utilizado anteriormente sólo reconoce ficheros con codificación UTF-8 (por defecto), por lo que la entrada debe estar codificada de este modo. ¿entonces, cómo podemos convertir nuestro fichero de texto de toda la vida a UTF-8?
Pues muy sencillo: tomamos un editor básico de texto (bloc de notas de windows o similares), abrimos nuestro fichero, seleccionamos la opción de guardar como... y en el campo referente a codificación seleccionaremos utf-8

----------------
StreamReader Lector = new StreamReader(DireccionDeArchivo, Encoding.Default);

Validando los TextBox (Solo letras) y (Solo Números)

Este código nos muestra como validar el TextBox1 para que acepte solo letras y como validar el TextBox2 para que acepte solo números.

En Visual Studio .NET abra un nuevo proyecto de VisualBasic .NET
Seleccionando la plantilla de Aplicación para Windows

En el Form1 que se crea automáticamente agregue dos TextBox
No les cambie el nombre Deben de quedar como TextBox1 y TextBox2
Luego valla al código del Form1 y agregue las siguientes líneas:


  Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf e.KeyChar.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf e.KeyChar.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As _ System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        If e.KeyChar.IsDigit(e.KeyChar) Then
            e.Handled = False
        ElseIf e.KeyChar.IsControl(e.KeyChar) Then
            e.Handled = False
        Else
            e.Handled = True
        End If
    End Sub

 
 
Listo ahora puede ejecutar su proyecto con F5 y probar la aplicación.
NOTA:
Si desea que en el TextBox1 aparezcan las letras solo en MAYUSCULAS o minúsculas solo
tiene que cambiar la propiedad CharacterCasing del TextBox1


Me.TextBox1.CharacterCasing = CharacterCasing.Upper 'para MAYUSCULASMe.TextBox1.CharacterCasing = CharacterCasing.Lower 'para minúsculas
o
Me.TextBox1.CharacterCasing = CharacterCasing.Normal

limpiar un gridview

Coloca esto al final de tu codigo , donde quieras limpiar el grid y listo

gridview.databind()

Link extraer informacion desde txt y excel

http://social.msdn.microsoft.com/Forums/es-es/netfxwebes/thread/eddc36d7-9ce0-4e64-bd52-a1ba09a50c7f

Como extraer datos de excel a visual basic y viceversa

Podemos usar un control Dirlistbox para ubicar el archivo Excel.
Dim Libxl As Object
Dim Archw As String
Dim Hojaw As String
Hojaw = "Hoja1"
Archw = File1
Set Libxl = GetObject(Dir1.Path & "\" & Archw)
'Libxl.Application.Visible = True
Libxl.Application.Windows(Archw).Activate
Libxl.Application.Sheets(Hojaw).Activate
' Aquí movemos de Excel a formulario
' Fila 1 col 3 o sea celda C1
Text1 = Libxl.Application.Cells(1, 3)
' Para mover al libro
Libxl.Application.Cells(45, 9).Value = Text1
Libxl.Application.Save
Set Libxl = Nothing

Suerte !

convertir de texto a numero VB

Con Val(String) puedes transformar el string en entero, ten cuidado de verificar el string.

Controles de validacion Web

Hay seis controles Web para la validación de datos de entrada que se pueden incorporar en un Formulario Web.
RequiredFieldValidator: Facilita la validación de un dato del formulario chequeando que el mismo tenga algún valor.
RangeValidator: Facilita la validación de un dato del formulario contra un valor mínimo y máximo.
CompareValidator: Facilita la validación de un dato del formulario contra un valor fijo u otro campo del formulario.
CustomValidator: Facilita la validación de un dato del formulario usando una subrutina propia.
RegularExpressionValidator: Facilita la validación de un dato del formulario contra una expresión.
ValidationSumary: Agrupa los mensajes de error de otros controles en una parte de la página.
Todos los controles de validación tienen tres propiedades fundamentales: ControlToValidate, Text y IsValid. Todos los controles derivan de la clase BaseValidator.
La propiedad ControlToValidate contiene la referencia del control del formulario que queremos validar.
La propiedad Text almacena el mensaje de error que queremos que se muestre en la página.
Por último la propiedad IsValid almacena True en caso que el control pase el test de validación.
Cuando empleamos controles de validación con el Explorer 4.0 o superior, los controles automáticamente usan funciones en JavaScript en el cliente. Esto significa que los controles pueden inmediatamente mostrar los mensajes de error en el browser mientras el usuario está completando el formulario. Si hay algún error en la página el código JavaScript previene que el usuario pueda enviar los datos al servidor.
En caso de emplear navegadores más antiguos los controles que veremos seguirán funcionando, pero la validación se realizará en el servidor.

Controles de validación

Control: RequiredFieldValidator

Para probar este control haremos una página que solicite el nombre de usuario (mostraremos un error si el operador no ingresa texto en el TextBox)
La interface visual es la siguiente:

El mensaje en rojo debe aparecer si presionamos el botón “Confirmar” y no se ingresó texto en el TextBox.
En el Visual Studio .Net confeccionamos el formulario web disponiendo uno control de tipo TextBox, un Button y un RequiredFieldValidator que se encuentra en la pestaña “Validación” del “Cuadro de herramientas”.
El control RequiredFieldValidator es importante inicializar las siguientes propiedades:

Cuando ejecutemos la página podemos ver el código que llega al navegador (en ella veremos las funciones en JavaScript que automáticamente el ASP.NET nos crea para facilitar la validación)
El código HTML completo de la página es el siguiente:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        Ingrese nombre de usuario:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
        ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator">Debe ingresar el 
nombre de usuario.</asp:RequiredFieldValidator>
        <br />
        <asp:Button ID="Button1" runat="server" Text="Confirmar" />
    
    </div>
    </form>
</body>
</html>
Como sabemos este código HTML se genera en forma automática cuando creamos cada control y configuramos sus propiedades.
Luego si queremos que al presionar el botón se redireccione a otra página en caso de haber ingresado un nombre de usuario debemos codificar el método Clic para dicho botón:
Partial Class _Default
    Inherits System.Web.UI.Page

   Protected Sub Button1_Click(ByVal sender As Object, _   
     ByVal e As System.EventArgs) Handles Button1.Click
     
     If Me.IsValid Then
            Me.Response.Redirect("Default2.aspx")
     End If
  
 End Sub
End Class
La propiedad IsValid del WebForm almacena true si todos los controles de validación dispuestos en el formulario se validan correctamente. Es decir en este problemas si se ingresa algún caracter en el control TextBox luego se puede pasar a la página “Default2.aspx”.

Control: RangeValidator

El control RangeValidator especifica un valor mínimo y máximo para un control TextBox. Podemos utilizar el control para chequear el rango de enteros, fechas, cadenas o valores reales.
Las propiedades más importantes del control son:
· ControlToValidate El campo del formulario a validar.
· MinimumValue El valor mínimo a validar en el rango de valores.
· MaximumValue El valor máximo a validar en el rango de valores.
· Text El mensaje de error a mostrar.
· Type El tipo de comparación a ejecutar (valores posibles: String, Integer, Double, Date, Currency)
Para probar este control haremos una página que solicite ingresar la edad de una persona que se postula para un trabajo (la misma debe estar en el rango de 18 a 35 años)
Disponemos sobre el formulario los siguientes objetos: Label, TextBox, Button y un RangeValidator. La interface que debemos implementar es la siguiente:
El objeto RangeValidator lo debemos configurar con los siguientes valores:

Si ejecutamos la página veremos que el mensaje aparece si ingresamos una edad que esté fuera del rango de 18 a 35 años.
El código a implementar al presionar el botón confirmar es el siguiente:
Partial Class Default2
    Inherits System.Web.UI.Page

   Protected Sub Button1_Click(ByVal sender As Object, _ 
     ByVal e As System.EventArgs) Handles Button1.Click
   
     If Me.IsValid Then
            Me.Response.Redirect("Default3.aspx")
     End If

   End Sub
End Class
Es decir redireccionamos a la próxima página en caso que todos los controles de validación del formulario se verifiquen correctos (en este problema solo tenemos un control de tipo RangeValidator, pero en muchos casos veremos que en un formulario puede haber más de un control de validación)
Si quisiéramos solo validar un control determinado del WebForm la condición sería:
If Me.RangeValidator1.IsValid Then
    Me.Response.Redirect("Default3.aspx")
End If
Es decir verificamos la propiedad IsValid del control RangeValidator (si tenemos un solo control en el formulario preguntar por la propiedad IsValid del webform o del RangeValidator el resultado será idéntico)

Control: CompareValidator

El control CompareValidator permite comparar un valor de un control con otro control o comparar el valor de un control con un valor fijo.
Las propiedades más importantes son:
· ControlToValidate El campo del formulario a validar.
· ControlToCompare El campo del formulario contra el cual se efectúa la comparación.
· Operator El operador a utilizarse en la comparación (los valores posibles son Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual y DataTypeCheck)
· Text El mensaje de error a mostrar.
· Type El tipo de comparación a ejecutar (valores posibles String, Integer, Double, Date, Currency)
· ValueToCompare El valor fijo a comparar.
Para probar este control implementaremos una página que realizaría el alta de la tabla usuarios (debe permitir el ingreso del nombre de usuario y su clave, esta última dos veces, con el objetivo de asegurarse que la ingresó correctamente), emplearemos un objeto de la clase CompareValidator para validar el ingreso repetido de la clave.
La interface visual de la página es:

Al objeto CompareValidator le configuramos las propiedades de la siguiente manera:

Es importante inicializar la propiedad ControlToValidate con el objeto TextBox que carga la segunda clave, luego que el operador carga la clave se procede a validar si el texto ingresado coincide en el TextBox que hemos inicializado la propiedad ControlToCompare.
El código a implementar al presionar el botón “Confirmar”:
Partial Class Default3
    Inherits System.Web.UI.Page

   Protected Sub Button1_Click(ByVal sender As Object, _ 
    ByVal e As System.EventArgs) Handles Button1.Click
       If Me.IsValid Then
           Me.Response.Redirect("Default4.aspx")
       End If
    End Sub
End Class

Control: CustomValidator

El control CustomValidator permite validar el campo de un formulario con una función de validación propia. Debemos asociar nuestro control CustomValidator con un evento propio.
Para probar este control implementaremos una página que solicite el ingreso de un número múltiplo de 5, en caso de ingresar un valor incorrecto mostraremos un mensaje de error.
La interface a implementar es la siguiente:

Primero configuramos las propiedades del objeto CustomValidator con:

Ahora debemos codificar el evento ServerValidate que tiene el objeto CustomValidator1, a esto lo hacemos desde la ventana de código y lo podemos generar automáticamente haciendo doble clic sobre el control en la ventana de diseño:
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As _ 
 System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
       
      Dim valor As Integer = args.Value
      If valor Mod 5 = 0 Then
         args.IsValid = True
      Else
         args.IsValid = False
      End If

End Sub
El parámetro args tiene dos propiedades fundamentales, una almacena el valor del control que estamos validando y otra llamada IsValid que debemos asignarle el resultado de nuestra validación.
En nuestro ejemplo almacenamos el número ingresado en la variable valor, luego mediante el operador Mod (resto de una división) verificamos si es cero, en caso afirmativo inicializamos la propiedad IsValid del objeto args con el valor True, en caso contrario, es decir que el número ingresado no sea un múltiplo de 5 almacenamos el valor False.
Cuando se presiona el botón confirmar tenemos:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Me.IsValid Then
            Me.Response.Redirect("Default5.aspx")
        End If
  End Sub

Control: RegularExpressionValidator

El control RegularExpressionValidator permite validar el valor de un campo de un formulario con un patrón específico, por ejemplo un código postal, un número telefónico, una dirección de mail, una URL etc.
El planteo de un RegularExpression es bastante compleja, pero el Visual Studio .Net provee una serie de expresiones regulares preconfiguradas.
Para probar este control, haremos una página que solicite el ingreso de un mail y mostraremos un error en caso que el usuario ingrese un mail mal formado.
La interface visual de la página es la siguiente:

Al objeto de la clase RegularExpressionValidator le configuramos las propiedades con los siguientes valores:

Si ejecutamos el programa podremos ver que al abandonar el foco del TextBox aparecerá el mensaje de error en caso de ingresar un mail incorrecto:
Partial Class Default5
    Inherits System.Web.UI.Page
 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
       If Me.IsValid Then
           Me.Response.Redirect("Default6.aspx")
       End If
 End Sub
End Class

Control: ValidationSummary

Cuando tenemos formularios con gran cantidad de controles puede llegar a ser dificultoso ubicar los errores en la página. El Framework de la .Net trae otra clase llamada ValidationSumary que muestra todos los errores de la página agrupados en una parte de pantalla. Para utilizar el control ValidationSummary es necesario fijar el valor de la propiedad ErrorMessage para cada control de validación que tiene la página. Es importante no confundir la propiedad Text que aparece en la misma posición donde la disponemos con la propiedad ErrorMesage que contiene el mensaje de error que mostrará el control ValidationSummary.
Para probar este control haremos una página que solicite la carga del nombre de usuario y su clave en forma obligatoria (mostrando un mensaje de error en caso de dejar vacío los TextBox)
La interface de la página es la siguiente:

Debemos disponer los siguientes objetos sobre el formulario:
1 Button, 2 TextBox, 2 RequiredFieldValidator y un objeto de la clase ValidationSummary.
La propiedad text de los objetos RequiredFieldValidator las inicializamos con un (*) asterisco y las propiedades ErrorMessage con las cadenas: “Debe ingresar el nombre de usuario” y “Debe ingresar la clave” respectivamente. En cuanto al objeto de la clase ValidationSummary no debemos hacer ninguna configuración especifica, solo ubicarlo dentro de la página.

Link para leer texto de un archivo

http://msdn.microsoft.com/es-es/library/db5x7c0d%28v=VS.80%29.aspx

Cadena de conexión para conectar a una base de SQL Server

La cadena de conexión

La cadena de conexión puede ser de dos formas distintas, según se indique la autenticación de Windows o la de SQL Server.
En la primera no hay que indicar ni usuario ni password, en la segunda si que hay que indicar esos dos datos.
Las bases de datos de SQL Server a las que podemos acceder con esa cadena de conexión pueden ser de cualquier versión, al menos yo lo he probado con las versiones 7.0, 2000 y 2005, en los tres casos usando ADO.NET.
En los siguientes ejemplos usaremos ciertos valores que tendrás que indicar según tus preferencias, me refiero al nombre del servidor de SQL Server y a la base de datos a la que quieres acceder, además del nombre del usuario o la contraseña.
En esos casos estarán indicados con letra en negrita y cursiva, el resto es texto "fijo" y que siempre podrás usar.


Cadena de conexión con autenticación de Windows
Para conectar a una base de datos de SQL Server con autenticación de Windows, la cadena de conexión será:
Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security = True

Cadena de conexión con autenticación de SQL Server

Para conectar a una base de datos de SQL Server usando autenticación del propio SQL Server, la cadena de conexión será:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña

Indicar una base de datos que está en un servidor "remoto"

Para acceder a una base de datos que está en un servidor remoto, es decir en otro equipo, debemos usar cualquiera de las dos cadenas de conexión que hemos visto antes, aunque lo normal será que se use la segunda en la que se indica el nombre del usuario y la contraseña.
Esto se suele usar cuando estamos en una página Web o bien si queremos acceder desde una aplicación de escritorio (Windows.Forms), pero la base de datos no está en nuestro equipo.
El código podría ser el siguiente, y puedes usar una dirección IP o el nombre de un dominio (DNS) para indicar el nombre del servidor de SQL Server:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña


Conectar usando código de ADO.NET

Lo habitual es que usemos dos tipos de "conexiones", una usando un objeto DataAdapter y la otra usando un objeto Connection. Esta última es la que debemos usar si el acceso lo haremos por medio de un objeto Command en lugar del DataAdapter, por ejemplo para acceder a un procedimiento almacenado.
Pero para mantener el ejemplo simple, solo mostraré cómo conectar usando el SqlDataAdapter en el que usaremos un objeto DataTable para traer los datos, y esos datos los mostraremos en un DataGrid o un GridView como es el caso del código mostrado.
Este mismo código será válido tanto para una aplicación de Windows o una página Web.

Conectar usando un objeto SqlDataAdapter

Cuando usamos un DataAdapter no necesitamos usar un objeto del tipo SqlCommand, ya que el adaptador se encarga de todo.
El código para Visual Basic y C# sería el siguiente:

Imports System.Data
Imports System.Data.SqlClient
Dim sCnn As String
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña"
Dim sSel As String = "SELECT * FROM NombreTabla"
Dim da As SqlDataAdapter
Dim dt As New DataTable
Try
    da = New SqlDataAdapter(sSel, sCnn)
    da.Fill(dt)
    Me.GridView1.DataSource = dt
    Me.GridView1.DataBind()
    LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count)
    
Catch ex As Exception
    LabelInfo.Text = "Error: " & ex.Message
    
End Try

using System.Data;
using System.Data.SqlClient;
string sCnn; 
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario; password = Contraseña";
string sSel = "SELECT * FROM NombreTabla";
SqlDataAdapter da;
DataTable dt = new DataTable();
try
{
    da = new SqlDataAdapter(sSel, sCnn);
    da.Fill(dt);
 
    this.GridView1.DataSource = dt;
    this.GridView1.DataBind();
    LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count);
}
catch(Exception ex)
{
    LabelInfo.Text = "Error: " + ex.Message;
}

Link Convertir una cadena en una matriz de caracteres en Visual Basic(MSDN)

http://msdn.microsoft.com/es-es/library/ms233830%28VS.80%29.aspx

Abrir archivos de excel-visual basic

Solo tendrian que retocar el codigo poniendoles el nombre para que los abra directamente.

solo hace falta un boton en el form

esto va en el option explicit

Dim HojaExcel As Excel.Worksheet
' Private HojaExcel As Excel.Worksheet
Dim LibroExcel As New Workbook

esto va en el boton

Dim NombreHoja As String
On Error GoTo RutinaError

NombreHoja:
NombreHoja = InputBox("Nombre de la Hoja")
If NombreHoja = "" Then Exit Sub ' Se pulso CANCELAR

' Buscamos la hoja en el directorio de la aplicacion
Set HojaExcel = GetObject(App.Path & "\" & NombreHoja)
HojaExcel.Application.Visible = True
' Activar la ventana que contiene la hoja de calculo
HojaExcel.Application.Windows(NombreHoja).Activate
Exit Sub

RutinaError:
MsgBox Err.Description
If Err = 432 Then Resume NombreHoja

Cómo leer archivos planos con ADO.NET

Leyendo un archivo CSV
Por ejemplo, imagina que eres achichincle del Jason (el de las películas de terror) y te manda a hacer sus compras, de lo contrario terminarás con tu cabeza y cuerpo en diferentes sectores de la ciudad. El vato hace su "chopin list" en Excel y lo guarda en el siguiente archivo llamado jason.csv:
Producto,Cantidad,Precio
Sierra eléctrica,1,250
Máscara de hockey,1,15.50
Machete,5,2.70
Detergente para ropa (con quita-manchas),1,10
Delantal,2,7.25
Afilador,3,5

Entonces, como buen dotnetero, podrías leerlo con una rutina como esta:
// asumiendo que tenemos
// using System.Data.OleDb;
// using System.Data;
// en este connection string:
//     HDR=Yes       : indica que el primer registro contiene los encabezados 
//                     (nombres) de las columnas, no datos.
//     FMT=Delimited : indica que el los campos están delimitados por un caracter
//                     (coma por default).
string connectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DirectorioDeArchivosCSV;" +
"Extended Properties='text;HDR=Yes;FMT=Delimited'";
DataTable dt = new DataTable("miTabla");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM jason.csv", conn))
{
da.Fill(dt);
}
// hacer algo con los datos en el DataTable

El código es bastante sencillo, es el patrón estándar para usar un DataAdapter. Lo único de especial que tiene es que utiliza el OLEDB Data Provider, y que en el connection string le especificamos el directorio donde se encuentra el archivo, así como el formato que tiene. Nota que emites un SELECT de SQL común y corriente, por lo cual podrías agregar una cláusula WHERE si así lo quisieras.
En fin, para comprobar que en realidad funcionara el código, puse un breakpoint e invoqué el DataSet Visualizer desde Visual Studio. El resultado:
Pero, ¿qué tan inteligente es el OLEDB Provider? ¿Adivinó correctamente el tipo de mis datos?
Leyendo un archivo de texto con posiciones fijas
Ahora, asume que el méndigo Jason te la puso más difícil y en lugar de darte un archivo CSV, te da un archivo de texto sencillo como este (jason.txt):
El código sería muy similar al anterior:
// asumiendo que tenemos
// using System.Data.OleDb;
// using System.Data;
// en este connection string:
//     HDR=Yes   : indica que el primer registro contiene los encabezados 
//                 (nombres) de las columnas, no datos.
//     FMT=Fixed : indica que el los campos están en posiciones fijas y el tamaño
//                 de cada campo se especifican con un archivo SCHEMA.INI
//                 en el mismo directorio donde está el archivo a leer.
string connectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DirectorioDeArchivosTXT;" +
"Extended Properties='text;HDR=Yes;FMT=Fixed'";
DataTable dt = new DataTable("miTabla");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM jason.txt", conn))
{
da.Fill(dt);
}
// hacer algo con los datos en el DataTable

De hecho, lo único que cambió fue el parámetro FMT en el connectionString, el nombre del archivo y el directorio donde localizarlo. Sin embargo, para que esto funcione con archivos de posiciones fijas es necesario un paso adicional: especificar el tamaño (y tipo) de las columnas en el archivo.
Esto se hace mediante un archivo schema.ini que debe estar en el mismo directorio que el archivo que vas a leer. Consulta esta página para saber todas las opciones disponibles. En nuestro caso un archivo como el siguiente sería suficiente:
[jason.txt]
Format=FixedLength
Col1=Producto Char Width 40
Col2=Cantidad Long Width 10
Col3=Precio Double Width 10

Factorizando código
Si generalizamos el código un poco, podemos extraer una función sencilla que pueda ser reutilizada en varios de nuestros programas. Esa rutina podría ser como esta, en donde le pasas como parámetros el tipo y archivo a leer y te regresa un DataTable poblado ya con los datos:
// asumiendo que tenemos 
// using System.Data.OleDb;
// using System.Data;
// using System.IO;
public enum TipoDeArchivoPlano { Delimited, Fixed }
public static DataTable LeerArchivoPlano(
FileInfo archivo, bool tieneEncabezado, TipoDeArchivoPlano tipoDeArchivo )
{
if (!archivo.Exists)
throw new FileNotFoundException(
"No se encontró el archivo especificado");
string conEncabezado = tieneEncabezado ? "YES" : "NO";
string connectionString = String.Format(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" +
"Extended Properties='text;HDR={1};FMT={2}'",
archivo.DirectoryName, conEncabezado, tipoDeArchivo.ToString());
DataTable dt = new DataTable("miTabla");
using (OleDbConnection conn = new OleDbConnection(connectionString))
using (OleDbDataAdapter da =
new OleDbDataAdapter("SELECT * FROM " + archivo.Name, conn))
{
da.Fill(dt);
}
return dt;
}

De manera que pueda ser llamado así:
DataTable dt = LeerArchivoPlano(
new FileInfo(@"C:\DirectorioDeArchivosCSV\jason.csv"),
true, TipoDeArchivoPlano.Delimited);

Funciones propias de Visual Basic

 

1 - Funciones para el tratamiento de cadenas

Las funciones de cadena , como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres.
A continuación las mas importantes de ellas.


1.1 - Función Lcase y Ucase

Estas dos funciones se utilizan para convertir cadenas de texto a minúscula y mayúscula.
La función Lcase cambia o convierte una cadena de texto a minúscula y un ejemplo de como utilizarla sería así:
Lcase (cadena que queremos convertir a minúsculas)

Ejemplo:
Dim cadena As String

cadena = "HOLA MUNDO"

'Convertimos
cadena = LCase(cadena)

'La variable cadena ahora vale "hola mundo"

La función Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a mayúsculas.
Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente línea:
Label1 = UCase(Label1)

El control Label1 pasaría a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS".


1.2 - Función Trim, LTrim y RTrim

Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena.

LTrim elimina los espacios vacíos de la parte izquierda de la cadena, RTrim de la parte derecha y Trim de ambas partes.
Ejemplos:
Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacíos de la izquierda haríamos lo siguiente:
ciudad = LTrim(ciudad)

Si en un TextBox quisieramos borrar todos los espacios vacíos de la parte derecha de la cadena:
MiText = RTrim(MiText)

La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena. Ejemplo:
Pais = "     Argentina     "
País = Trim(Pais)

Ahora el valor de País es igual a: "Argentina".


1.3 - Función Len

La función Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta función nos devuelve un número.
Ejemplo:
Len (Aquí va la cadena que queremos averiguar su tamaño)

Como la función Len devuelve un número debemos asignar ese número devuelto en una variable de tipo numérica.
Ejemplo:
Dim TamanoCadena As Long

Dim MiCadena As String

MiCadena = "Me Llamo Eustaquio"

TamanoCadena = Len(MiCadena)

El valor de la variable TamanoCadena pasaría a valer 18.
Hay que tener en cuenta que la función Len también toma en cuenta los espacios vacíos.

1.4 - Función Asc y Chr

La función Asc nos permite obtener el código ASCII de un de terminado caracter.
Ejempos:
Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos hacer lo siguiente:
Dim num As Integer

num = Asc("a")
En definitiva la función Asc lleva un solo parámetro de tipo String del cual queremos obtener dicho número.
La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir de un determinado número nos devolverá el caracter ASCII.
Obviamente que en vez de pasarle a la función un parámetro String es decir la letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado.
Ejemplo:
Dim letra As String

letra = Chr(97)
La variable pasa a valer en este caso el caracter "a"

1.5 - Función InsTr

La función InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena.
Si la función encuentra la cadena a buscar devuelve un número que representa la posición donde encontró la cadena, si no la encuentra devuelve un 0.
Los parámetros que lleva esta función son:
InStr (comienzo, Cadena donde buscar , La Cadena a buscar)
Como esta función devuelve un número debemos almacenarla en una variable de tipo numérica para utilizarla.
Ejemplo:
Dim posicion As Integer

posicion = InStr("Estoy tomando mate", "mate")
En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que la variable posición pasa a valer 15.
Si observamos bien, la función en el primer parámetro, denominado comienzo, nos pide que le digamos desde que posición comenzar a buscar. En nuestro ejemplo, este parámetro lo obviamos, esto quiere decir que comenzará desde la posición 0 de la cadena a buscar. Pero podríamos especificar una posición en particular, por ejemplo desde la 5 , 10 etc..., según lo que necesitemos hacer.

Otro ejemplo de InsTr :
Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a partir de donde esté ubicda la selección.
Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresará la frase y otro TextBox llamado Text1 que tendrá el texto. Este ultimo con la propiedad Multiline en True.
También colocar dos CommandButton: Command1 y Command2

vista del ejemplo buscador de frases mediante la función instr

Colocar el siguiente código fuente en el formulario:
Option Explicit

Private m_Pos As Integer


Sub buscar_cadena(ByVal Posicion As Integer)

Dim p As Integer, Frase As String

    Frase = txt_Buscar
    
    p = InStr(Posicion, Text1, Frase)
    
    If p > 0 Then
        m_Pos = p
        
        With Text1
            .SelStart = m_Pos - 1
            .SelLength = Len(Frase)
            .SetFocus
        End With
    Else
        MsgBox "No se encontró la frase", vbInformation
        Text1.SetFocus
    End If
End Sub

Private Sub Command1_Click()
'Busca a pratir de la primera pocición
Call buscar_cadena(1)
End Sub

Private Sub Command2_Click()
'Busca a partir del valor que tenga m_Pos

Call buscar_cadena(m_Pos + 1)

End Sub

Private Sub Form_Load()
Command1.Caption = "Buscar"
Command2.Caption = "Buscar siguiente"
Me.Caption = "Ejemplo de InStr "
End Sub 

Nota: también hay una función similar a Instr llamada InstrRev , y lo que hace es devolver la posición de la primera concurrencia de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma
En este enlace hay un ejemplo que usa la función instrRev
Extraer de un path o ruta, solo la extensión del archivo

Función Left, Right y Mid


Estas funciones son utilizadas para extraer partes de una cadena.
La función Left:
tiene 2 parámetros: El primero es la cadena de la cual se extraerán caracteres, y el segundo un número desde el cual comenzar a extraer caracteres desde la parte izquierda.
Ejemplo:
Dim Cadena As String

Cadena = Left("Ya es la madrugada", 9)

'Cadena, que es un string, sería igual a: "Ya es la"

Función Right:
Es igual que la función Left pero comienza a extraer caracteres desde el lado derecho de la cadena.
La función Mid:
Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis es:
Mid (cadena, inicio, longitud)
El parámetro cadena es la cadena a extraer caracteres. El parámetro Inicio es donde comenzar y el parámetro longitud, es la cantidad de caracteres a extraer de la cadena de caracteres
Ejemplos:
Dim nombre As String
nombre = Mid("River perdió la copa", 7, 6)

'La variable nombre sería igual a: "perdió"

Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina de escribir.
Colocar en un formulario un CommandButton y el siguiente código fuente en el form.
Option Explicit

Sub Pausa(Segundos As Double)
    
    Dim inicio As Double
    
    ' Devuelve la cantidad de segundos desde que inicio windows
    inicio = Timer
    
    Do While (Timer - inicio) < Segundos
        ' pausa
        DoEvents
    Loop
End Sub

Private Sub Command1_Click()
            
    Dim texto As String
        
    texto = "... Hola mundo --->>> "
        
    Call MostrarTexto(texto, 0.1, Me)

End Sub

Private Sub MostrarTexto(Frase As String, _
                         Segundos As Double, _
                         Destino As Object)
    
    Dim LenFrase As Integer
    Dim i As Integer
    Dim Caracter As String
    Dim texto As String
    
    LenFrase = Len(Frase)
    
    Do While i <= LenFrase
        Destino.Cls
        
        DoEvents
            i = i + 1
            ' Obtiene el siguiente caracter
            Caracter = Mid(Frase, i, 1)
            ' texto actual
            texto = texto & Caracter
            Destino.Print texto ' Imprimi e/ dibuja el texto
            ' pausa o delay
            Pausa Segundos
        DoEvents
     Loop
End Sub

Private Sub Form_Load()
    Me.FontSize = 12
    Me.Font.Bold = True
    Me.ForeColor = vbRed
    Command1.Caption = " Efecto de texto con mid "
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub  



1.6 - Función Str y Val


La función Val convierte una cadena en un número yla función Str un número en una cadena.
Ejemplos:
cadena = "123456"
cadena = Val(cadena)

'Ahora cadena vale 123456

cadena2 = 123456
cadena2 = Str(cadena2)

'Ahora cadena2 vale "123456"



2 - Funciones para el tratamiento de números

Visual Basic posee muchas funciones para tratar números. A continuación las principales funciones.

2.1 - Función Round

La función Round se utiliza para redondear un número decimal, devolviendo un número entero.

Ejemplo:
Dim Mimumero As Long

Minumero = Round(245.8) '(La función devuelve 246)
Minumero = Round(245.3) '(La función devuelve 245)
Minumero = Round(245.5) '(La función devuelve 245)
Round posee un parámetro opcional por si queremos incluir los dígitos decimales.

2.2 - Rnd y Randomize - Números aleatorios

Para generar números aleatorios, Visual Basic incluye 2 funciones: Rnd y Randomize.
La función Rnd devuelve un número aleatorio, y esta posee un solo parámetro.
Ejemplo :
Rnd (número)

Pero para poder generar dichos números aleatorios, debemos utilizar previamente la función Randomize con la siguiente fórmula:
Dim LimiteInferior As Integer
Dim LimiteSuperior As Integer

LimiteInferior = 20

LimiteSuperior = 40


MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)
En el ejemplo anterior, se generarán números aleatorios comprendidos entre el 20 y el 40
Nota: en este enlace podés ver un ejemplo que permite generar números aleatorios no repetidos

Funciones matemáticas

Las principales funciones matemáticas provistas por Visual Basic son:
  • Abs: Devuelve el valor absoluto de una expresión numérica.
  • Atn: Devuelve el arco tangente de un número.
  • Cos: Devuelve el coseno de un ángulo.
  • Exp: Devuelve el número "e" elevado a una potencia.
  • Log: Devuelve el logaritmo natural de un número.
  • Sgn: Devuelve un valor indicando el signo de un número.
  • Sin: Devuelve el seno de un ángulo.
  • Sqr: Devuelve la raíz cuadrada de un número.
  • Tan: Devuelve la tangente de un ángulo.




3 - Funciones de formato

Visual Basic posee varias funciones para darle formato a distintos tipos de datos e información. A continuación se ve algunos ejemplos de las principales funciones:
  • FormatCurrency: Esta función se utiliza para trabajar con números con formato en dinero. Ejemplo:
    si tenemos un número 3 y utilizamos la función nos devolvería "$3".
  • FormatPercent: Esta función es utilizada para trabajar con porcentajes. Ejemplo :
    si tendríamos un número 321, nos devolvería: "32,1%" .
  • FormatDateTime: Esta función trabaja con fechas y horas.
  • FormatNumber: Formatea expresiones números
 

Resultado = FormatPercent(321) 'devuelve: "32.100,00%"
Resultado = FormatCurrency(3)  'devuelve: "$3,00"
Resultado = FormatDateTime("6-8-1978")  'La función devolvería: "06/08/1978"

NumDigitsAfterDecimal: Parámetro de tipo opcional. Este indicará cuantos números decimales devolverá la función:

Ejemplo
cadena = FormatCurrency(325, 3) 'Devuelve: "$325,000"

Ejemplo de la función FormatDateTime

Esta función, en el primer parámetro se le debe pasar la fecha u hora a formatear, y el segundo parámetro es el tipo de formato, pueden ser 5 tipos.
vbGeneralDate, vbLongDate, vbShortDate, vbLongTime y vbShortTime.
Este parámetro es de tipo opcional. al colocar la coma dentro de la función , visual basic despliega la lista de constanetas mencionadas, como muestra el gráfico:
vista de la lista desplegable de la función FormatDateTime con las constantes disponibles

Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco option Button, cada botón de opción mostrará los diferentes formatos en el caption del formulario, es decir en la barra de título.

vista del formulario con los option button para usar los diferentes valores para la función format

Código en el formulario:
 Private Sub Form_Load()

Option1.Caption = " vbGeneralDate "
Option2.Caption = " vbLongDate "
Option3.Caption = " vbShortDate "
Option4.Caption = " vbLongTime "
Option5.Caption = " vbShortTime "

End Sub
Private Sub Option1_Click()
Me.Caption = FormatDateTime(Now, vbGeneralDate)
End Sub

Private Sub Option2_Click()
Me.Caption = FormatDateTime(Now, vbLongDate)
End Sub

Private Sub Option3_Click()
Me.Caption = FormatDateTime(Now, vbShortDate)
End Sub

Private Sub Option4_Click()
Me.Caption = FormatDateTime(Now, vbLongTime)
End Sub

Private Sub Option5_Click()
Me.Caption = FormatDateTime(Now, vbShortTime)
End Sub

FormatNumber - Ejemplos:

Formatea 0.489698 a 0,49
Dim Numero As Double

Numero = 0.489698
Numero = FormatNumber(Numero, 2, vbFalse)

MsgBox Numero
Formatea 1.958754 a 1,96
Dim Numero As Double

Numero = 1.958754
Numero = FormatNumber(Numero, 2)

MsgBox Numero

Función Format:


La función Format es mas completa que las anteriores funciones, porque puede manejar mas tipos de datos, y no devuelve solo cadenas, esta también puede devolver números y fechas.
La función Format posee dos parámetros:
Format (Expresión, formato)

En el primero debemos colocar cualquier expresión válida. El segundo es opcional y a continuación veremos una descripción de los formatos de VB:
  • GeneralNumber: Devuelve el número sin formato.
  • Currency: Devuelve el número en formato moneda, con el símbolo "$" y 2 decimales a las derecha.
  • Fixed: Devuelve como mínimo un dígito a la izquierda y 2 ala derecha del decimal.
  • Standar: Similar a Fixed pero incluye un separador de miles.
  • Percent: Multiplica el número por cien y le agrega el símbolo "%"
  • True/False: Devuelve Verdadero para un valor distinto de 0,y Falso para 0.
  • On/OFF: Devuelve "Activado" para un valor distinto de 0, y "Desactivado" para 0.
La forma de pasar el parámetro es entre comillas.
Ejemplo:
cadena = Format(75, "Currency") ' Devolvería: "$75,00"

Nota: Si ingresamos un número decimal, debemos utilizar el "." y no la coma "," ya que la coma determina el comienzo de otro parámetro dentro de la función y Visual basic daría error de sintaxis

4 - Funciones de formato para fechas y hora


Ejemplos de los principales Formatos con nombre para el manejo de Fechas y Horas:

Funciones para Fechas

Dim cadena As String

cadena = Format("06/08/78", "General Date") ' Devuelve: "06/08/1978"
cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979".
cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979"

cadena = Format("17:08", "Short Time") ' "05:08"

cadena = Format("17:08", "Medium Time") ' "05:08 PM"

cadena = Format("17:08", "Long Time") ' "05:08:00 PM"




4.1 - Funciones para calcular fechas

Visual basic cuenta con una serie de funciones que nos permiten calcular fechas y horas, por ejemplo generar un intervalo de fechas, sumar y restar fechas y horas y otras operaciones y cálculos
DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado
DateDiff : Devuelve el número de intervalos de tiempo entre dos fechas determinadas
DatePart : Devuelve una parte específica de una fecha dada
DateSerial : Devuelve un valor Date para un año, mes y día determinados

Ejemplos
El siguiente ejemplo utiliza la función DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo muestra en segundos , minutos, dias, semanas meses y años, como muestra el siguiente gráfico
vista previa del ejemplo en visual basic para usar datediff

Colocar en el formulario un Command1.
Option Explicit

' recibe las dos fechas como parámetros
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Calcular(Fecha_Inicial As Date, _
                     Fecha_Final As Date)

    
    Const Formato As String = "#,##0"
    
    Me.Cls
    Me.Print "Calcular Intervalos entre las fechas  " & Fecha_Inicial & _
             "  hasta :" & Fecha_Final & vbNewLine & String(150, "-") & vbNewLine
                                   
    
    Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) & " segundos"
    Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) & " minutos"
    Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) & " horas"
    
    Me.Print Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) & " dias"
    Me.Print Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) & " semanas"
    Me.Print Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) & " meses"
    Me.Print Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) & " años"
    
End Sub

Private Sub Command1_Click()
    ' le pasa las dos fechas a la función
    Call Calcular("01/01/2000", Date)
End Sub

Private Sub Form_Load()

    Me.AutoRedraw = True
    Command1.Caption = "calcular intervalos "

End Sub

Ejemplo con DateAdd
Lo siguiente, muestra como añadir y restar fechas
' agrega 10 años a la fecha actual
MsgBox DateAdd("yyyy", 10, Date)

' Agrega cinco meses a la fecha actual
MsgBox DateAdd("m", 5, Date)

' resta 1 dias a la fecha actual ( usa el signo -)
MsgBox DateAdd("y", -1, Date)  

Nota: para restar, usar el signo negativo, como se usa en el último ejemplo.
Para poder restar y agregar segundos a una hora, usar en el parámetro intervalo la "S", para minutos usar la "n", para horas la "h", para restar y sumar semanas la "ww"

Truco: Solo letras en los TexTbox (Windows Forms) – VB y CSharp

Hay ocaciones que en nuestras aplicaciones debemos controlar lo que el USUARIO deberia escribir en los TextBox… recuerden que esas personitas son experto para hacer que nuestras aplicaciones den un error y mas en los campos que solo debe ir TEXTO en ves de numero… por ello aqui les dejo este pequeño truquillo.

Por cierto para que funcione deben codificar el evento KeyPress del TextBox.
En Visual Basic:
Private Sub txtPruebaTexto_KeyPress(ByVal sender As Object, _
                              ByVal e As System.Windows.Forms.KeyPressEventArgs) _
                              Handles txtPruebaTexto.KeyPress

    If Char.IsLetter(e.KeyChar) Then
        e.Handled = False
    ElseIf Char.IsControl(e.KeyChar) Then
        e.Handled = False
    ElseIf Char.IsSeparator(e.KeyChar) Then
        e.Handled = False
    Else
        e.Handled = True
    End If
End Sub
En Visual C#:
private void txtPruebaTexto_KeyPress(object sender, KeyPressEventArgs e)
       {
           if (Char.IsLetter(e.KeyChar))
           {
               e.Handled = false;
           }
           else if (Char.IsControl(e.KeyChar))
           {
               e.Handled = false;
           }
           else if (Char.IsSeparator(e.KeyChar))
           {
               e.Handled = false;
           }
           else
           {
               e.Handled = true;
           }
       }

Links donde puedes hacer diferentes menus

http://www.forosdelweb.com/f13/como-hacer-menu-con-java-script-537645/
http://www.dynamicdrive.com/dynamicindex1/contextmenu.htm
http://www.tunait.com/javascript/generador/generadorformu.php
http://www.miguelmanchego.com/2009/dropdown-menu-desplegable-ajax-jquery/

Link para codigo de conexion en diferentes plataformas

http://www.connectionstrings.com/

Las hojas de estilo en cascada y explicamos una serie de efectos rápidos e interesantes que se pueden hacer con ellas.

CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra, fondos, colores...

CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. En este reportaje vamos a ver algunos de los efectos que se pueden crear con las CSS sin necesidad de conocer la tecnología entera.

Para empezar

Las Hojas de Estilo en Cascada se escriben dentro del código HTML de la página web, solo en casos avanzados se pueden escribir en un archivo a parte y enlazar la página con ese archivo. En un principio vamos a utilizar la manera más directa de aplicar estilos a los elementos de la página, mas adelante veremos la declaración en archivos externos. Para ello, y esto es la primera lección de este artículo, vamos a conocer un nuevo atributo que se puede utilizar en casi todas las etiquetas HTML: style.

Ejemplo:

<p style="color:green;font-weight:bold">El párrafo saldrá con color verde y en negrita</p>

Dentro del atributo style se deben indicar los atributos de estilos CSS separados por punto y coma (;). Durante este artículo vamos a conocer muchos atributos de CSS, los dos primeros que hemos visto aquí son:

Color: indica el color del contenido la etiqueta donde estemos utilizándolo, generalmente indica el color del texto.

Font-weight: indica el grosor del texto. Bold sirve para poner en negrita.

Color en los enlaces

Con HTML definimos el color de los enlaces en la etiqueta <body>, con lo atributos link, vlink y alink. Esto nos permite cambiar el color de los enlaces para todo el documento, pero ¿Y si queremos cambiar el color de un enlace en concreto, para que tenga otro color que el definido en la etiqueta <body>?

Para hacer esto utilizaremos el atributo style dentro del enlace:

<a href="mienlace.html" style="color:red">

Así saldrá el enlace en color rojo, independientemente de lo definido para todo el documento.

Espaciado entre líneas

Con CSS podemos definir el espacio que hay entre cada línea del documento, utilizando el atributo line-height. Por ejemplo, podemos definir que para todo un párrafo el espacio entre cada una de sus líneas sea 25 pixels:

<p style="line-height: 25px;">
Un párrafo normal en el que cada una de las líneas está separada 25 pixels de la otra. Hay que poner suficiente texto como para que se vean 2 líneas, así saldrán separadas
</p>


Espaciado entre caracteres

Se puede definir también el espacio entre cada carácter. Esto se hace con el atributo de CSS letter-spacing. Veamos un ejemplo:

<p style="letter-spacing:12cm">
Este párrafo tiene las letras espaciadas por 1 centímetro.
</p>


Este atributo, al igual que ocurre con muchos otros de CSS, no está soportado por todos los navegadores. En concreto Netscape, en su versión 4 todavía no lo incluye.

Enlaces sin subrayado

Uno de los efectos más significativos y fáciles de realizar con CSS es eliminar el subrayado de los enlaces de una página web. Existe un atributo que sirve para definir la decoración de un texto, si está subrayado, tachado, o si no tiene ninguna de estas "decoraciones". Es el atributo text-decoration, en este caso indicaremos en un enlace que no queremos decoración:

<a href="mipagina.html" style="text-decoration:none">

Incluir estilos para todo un sitio web


Una de las características más potentes de la programación con hojas de estilo consiste en definir los estilos de todo un sitio web. Esto se consigue creando un archivo donde tan sólo colocamos las declaraciones de estilos de la página y enlazando todas las páginas del sitio con ese archivo. De este modo, todas las páginas comparten una misma declaración de estilos y, por tanto, si la cambiamos, cambiarán todas las páginas.

Veamos ahora todo el proceso para incluir estilos con un fichero externo.

1- Creamos el fichero con la declaración de estilos

Es un fichero de texto normal, que puede tener cualquier extensión, aunque le podemos asignar la extensión .css para aclararnos qué tipo de archivo es. El texto que debemos incluir debe ser escrito exclusivamente en sintaxis CSS, es un poco distinta que la sintaxis que utilizamos dentro del atributo style. Sería erróneo incluir código HTML en este archivo: etiquetas y demás. Podemos ver un ejemplo a continuación.

P {
font-size : 12pt;
font-family : arial,helvetica;
font-weight : normal;
}
H1 {
font-size : 36pt;
font-family : verdana,arial;
text-decoration : underline;
text-align : center;
background-color : Teal;
}
BODY {
background-color : #006600;
font-family : arial;
color : White;
}


2- Enlazamos la página web con la hoja de estilos

Para ello vamos a colocar la etiqueta <LINK> con los atributos
  • rel="STYLESHEET" indicando que el enlace es con una hoja de estilo.
  • type="text/css" porque el archivo es de texto, en sintaxis CSS.
  • href="estilos.css" indica el nombre del fichero fuente de los estilos.
Veamos una página web entera que enlaza con la declaración de estilos anterior:

<html>
<head>
<link rel="STYLESHEET" type="text/css" href="estilos.css">
<title>Página que lee estilos</title>
</head>
<body>
<h1>Página que lee estilos</h1>
<p>
Esta página tiene en la cabecera la etiqueta necesaria para enlazar con la hoja de estilos. Es muy fácil.
</p>
</body>
</html>


Las CSS tienen mucho más jugo

Las Hojas de Estilo en Cascada son un estándar muy amplio, con unas especificaciones y posibilidades muy grandes. En este artículo hemos visto unos cuantos efectos interesantes que realizar aunque no tengamos ningún conocimiento previo. Sin embargo, lo mejor para trabajar con esta tecnología es conocerla bien, gracias a ello, los resultados serán mucho más sorprendentes.

Codigo para hacer pestañas

<html>
    <
head
>
        <
title
>
            
Pestañas
        
</title
>
        <
script language="javascript"
>
            function 
ocultarTodo
()    {
                
indicadores document.getElementById("cabecera").getElementsByTagName("div"
);
                for (var 
0indicadores.length
++)
                    
indicadores[i].style.display "none"
;

            }
        
</script>     </head>

    <body>
        <div align=center>
            <div id="cabecera" >
                <span onclick="ocultarTodo(); document.getElementById('cuerpo1').style.display = 'block'"
                    style="background-color: #eeeeee; border-width: 2px; border-style: ridge ridge none ridge; border-color: red;">
                    Mostrar capa 1
                </span>
                &nbsp;
                <span onclick="ocultarTodo(); document.getElementById('cuerpo2').style.display = 'block'"
                    style="background-color: #dddddd; border-width: 2px; border-style: ridge ridge none ridge; border-color: blue;">
                    Mostrar capa 2
                </span>
                <div id="cuerpo1" style="width: 80%; border: 1px none red; background-color: #eeeeee; display: block;">
                    Este es el contenido de la capa 1
                    <br />
                    <br />
                    <br />
                </div>
                <div id="cuerpo2" style="width: 80%; border: 1px none blue; background-color: #dddddd; display: none;">
                    Este es el contenido de la capa 2
                    <br />
                    <br />
                    <br />
                </div>
            </div>
        </div>
    </body
</html>