viernes, 16 de marzo de 2012

Función Del Objeto Datarow en VB.NET


El objeto Datarow es un objeto de Visual  Basic el cual representa un número de fila primaria de una tabla en la que está contenida en un DataSet en a la cual se le pueden agregar datos así mismo actualizarlo, eliminarlo y modificarlo.
Mediante este nos podemos ahorrar el ingreso de información directamente de un cuadro de texto así también como el agregado de información directamente a un Datagridview. Este nos permite crear  una tabla a partir de la información de otra seleccionándola cada uno de los campos por medio de un array o vector.
Un array o vector es el conjunto de filas y columnas en las cuales cada una de ellas se almacena información. Cuando se selecciona información a través de un array se hace mediante el número de una fila, que en el cual la línea inicial es 0.
Para ver como trabaja el datarow utilizaremos un ejemplo en el cual crearemos una tabla nueva a partir de otra tabla contenida ya en nuestro data set y la información contenida en ella será mostrada en un DataGridView.
En este ejemplo el datarow trabajara con los siguientes métodos y propiedades:
Métodos.
AcceptChanges():   Acepta todos los cambios realizados desde la última vez que se llamo a este método.
Add(): Agrega un nuevo elemento, en este caso un nueva fila.
NewRow: crea nuevos elementos datarow con el mismo esquema de una tabla.
Propiedades:
Rows: es una propiedad que se utiliza junto con el NewRow para devolver un nuevo objeto.
Ya con esto pasaremos a realizar nuestro ejemplo.
Para la realización de este en nuestro dataset tendremos la creación de dos tablas: nuestra tabla Principal donde tendremos todos nuestros datos contenidos y una nueva tabla que haremos en la cual 

se guardaran cada uno de la nueva información que seleccionaremos a través del array y que agregaremos mediante el Datarow.
Una vez hecho esto pasaremos a hacer un nuevo formulario el cual quedará de la siguiente manera:
En el desabilitaremos las opciones ya que lo que queremos es que se visualice la información en el y no agregarla o eliminarla asi tambien como editarla.
Damos Click en el boton Generar información y pasamos a escribir las siguientes lineas de codigo para generar informacion en nuestro dataGridview.

Codigo:
' Hacemos el llamado al entorno de datos
' y a los diferentes conjuntos de objetos de Oledb que nos ayudaran para la ejecucion de nuestro programa
Imports Encuesta.Entorno
Imports System.Data.OleDb
Public Class Form1


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        ' Primer paso pasamos a limpiar nuestra tabla para a la hora de querer generar nuesta informacion no se muestren nuestros datos repetidos u obtengamos un error
        DsTablas.Grafico.Clear()
        ' Paso 2 Pasamos a Crear nuestro Array para obtener nuestra informacion de la otra tabla ya contenida en
        ' nuestro Data set
        ' la informacion que queremos mostrar u obtener en nuestra tabla nueva es la info. de Internet
        ' Cable y telefonia
        Dim Array As String() = {"Internet", "Cable", " Telefonia"}
        ' seguido de esto procedemos a crear un ciclo repetitivo para que recorra nuesto array
        ' este ciclo ira contando desde 0 hasta todo numero de array que sea mayor a -1
        For i As Integer = 0 To Array.Count  -1
            ' Creamos una instruccion SQL select para que nos traiga nuestra informacion de la tabla.
            Dim Sql As String = " Select" & Array(i) & ", count(" & Array(i) & ") as Total from Encuesta where " & _
                Array(i) & " = True group by  " & Array(i)
            ' Esta instruccion nos seleccionara los campos que emos colocado en nuestro array, hará un conteo de de las
            ' personas que la han seleccionado, lo guardara en el campo total, hara su conteo de las respuestas que sean verdaderas
            ' y las agrupara por la informacion seleccionada
            ' Verificamos si nuestra conexion esta abierta y pasamos a ejecutar nuestra instruccion y hacer una lectura de ella
            Datos.Conectar()
            Dim comando As New OleDbCommand(Sql, Datos.oConexion)
            Dim lectura As OleDbDataReader = comando.ExecuteReader
            ' Seguido de esto Agregamos Nuestro Datarow para la Creacion de una nueva fila de la tabla
            Dim fila As DataRow = DsTablas.Grafico.NewRow
            ' Ya hecho esto Creamos Una condicion que Dira que si la Lectura de los datos ha sido leida la
            'fila Preguntas sera igual a los campos con la informacion seleccionada con nuestro array
            If lectura.Read Then
                fila("Preguntas") = Array(i)
                ' la fila Total sera igual ala lectura del Total
                fila("Total") = lectura("Total")
                'Seleccionamos de nuestro data set nuestra tabla grafico y agregamos nuestra nueva fila
                DsTablas.Grafico.Rows.Add(fila)
            End If
            ' Y cerramos nuestra conexion
            Datos.oConexion.Close()
            DsTablas.Grafico.AcceptChanges()
            ' una vez Termiando esto Estara listo Para mostrarse la informacion
            ' Ojo un punto muy importante si en el instante en que se ejecuta el form y se da click en generar inf
            ' y no se muestran datos en el es porque en la tabla de la base de datos no hay registros contenidos.

        Next
      
    End Sub
End Class




2 comentarios:

  1. Su aporte es bueno, pero si no tuviera errores ortograficos seria mejor, en el ciclo for tiene un error, al menos asi lo creo, porque ud escribe "For i as integer = 0 to Array.Count > -1" y su codigo debio escribirlo de esta forma "For i as integer = 0 to Array.Count -1"

    ResponderEliminar
  2. Gracias por la observacion profesor.. se me fue por alto.

    ResponderEliminar