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