viernes, 16 de marzo de 2012

DataRow


                                 DataRow

Primero necesitamos saber que es un DataRow, aquí está la definición, junto con otras que se necesitaran más adelante.
Un objeto DataRow representa una sola fila en la tabla, y permite leer y actualizar los valores en esa fila, así como la recuperación de cualquier fila que esté relacionada con ella a través de una relación de clave primaria - clave extranjera.

Un objeto DataSet representa un esquema (o una base de datos entera o un subconjunto de una). Puede contener las tablas y las relaciones entre esas tablas.
  • Un objeto DataTable representa una sola tabla en la base de datos. Tiene un nombre, filas, y columnas.
  • Un DataColumn representa una columna de la tabla, incluyendo su nombre y tipo.
  • Un Constraint describe una propiedad de la base de datos que se debe cumplir, como que los valores en una columna de clave primaria deben ser únicos. A medida que los datos son modificados cualquier violación que se presente causará excepciones.
  • DataRowCollection es un componente principal de DataTable. Mientras que DataColumnCollection define el esquema de la tabla, DataRowCollection contiene sus datos reales, donde cada DataRow de DataRowCollection representa una única fila.
  • NewRow Se debe utilizar el método NewRow para crear nuevos objetos DataRow con el mismo esquema que DataTable. Después de crear DataRow, se puede agregar a DataRowCollection mediante la propiedad Rows del objeto DataTable.

Obtener DataRow: A veces, usted tendrá que obtener una referencia a una fila de datos en el DataTable. Esta referencia se puede utilizar para llamar al método Delete u otros métodos, o para pasar como un parámetro a los métodos.
Ejemplo de DataRow:

     ‘A continuación, agregue la nueva fila a la colección.
    
Fila ("fname") = "James"
     Fila ("lName") = "Maslow"
     table.Rows.Add (Fila)

    
Los objetos DataRow y DataColumn son componentes principales de un DataTable. Utilice el objeto DataRow y sus propiedades y métodos para recuperar, evaluar, insertar, eliminar y actualizar los valores de DataTable.
Para crear un DataRow nuevo, utilice el método NewRow del objeto DataTable. Después de crear un DataRow nuevo, utilice el método Add para agregar el nuevo DataRow a DataRowCollection. Por último, llame al método AcceptChanges del objeto DataTable para confirmar la adición. Para obtener más información sobre la adición de datos a un DataTable, vea Agregar datos a una tabla.
Puede eliminar un DataRow de DataRowCollection llamando al método Remove de DataRowCollection, o bien llamando al método Delete del objeto DataRow. El método Remove quita de la colección la fila. En cambio, Delete marca el DataRow que se va a quitar. La eliminación real se produce cuando se llama al método AcceptChanges. Al llamar a Delete, se puede comprobar mediante programación qué filas están marcadas para eliminación antes de eliminarlas. Para obtener más información, vea Eliminar una fila de una tabla.
En el ejemplo siguiente se crea un nuevo DataRow mediante una llamada al método NewRow del objeto DataTable en Visual Basic.
Private Sub CreateNewDataRow ()
    'Use el MakeTable Function below para crear una nueva tabla.
    Dim Table As DataTable
    Table = MakeNamesTable ()

    ‘una tabla ha sido creada, use el
    ‘NewRow para crear un DataRow.
    Dim row As DataRow
    Row = table.NewRow()

    ‘Entonces al añadir un row para la colección.
    Row ("fname") = "Ian"
    Row ("lName") = "Somerhalder"
    table.Rows.Add (row)
   
    Dim column As DataColumn
    For Each column in table.Columns
       Console.WriteLine (column.ColumnName)
    Next
    DataGrid1.DataSource=table
 End Sub

 Private Function MakeNamesTable () As DataTable
    'Crear un nuevo DataTable titulado 'Names.'
    Dim namesTable As DataTable = new DataTable ("Names")

    'añadir tres objetos de columnas para la nueva tabla.
    Dim idColumn As DataColumn = new DataColumn ()
    idColumn.DataType = System.Type.GetType ("System.Int32")
    idColumn.ColumnName = "id"
    idColumn.AutoIncrement = True
    namesTable.Columns.Add (idColumn)

    Dim fNameColumn As DataColumn = New DataColumn ()
    fNameColumn.DataType = System.Type.GetType ("System.String")
    fNameColumn.ColumnName = "Fname"
    fNameColumn.DefaultValue = "Fname"
    namesTable.Columns.Add (fNameColumn)

    Dim lNameColumn As DataColumn = new DataColumn ()
    lNameColumn.DataType = System.Type.GetType ("System.String")
    lNameColumn.ColumnName = "LName"
    namesTable.Columns.Add (lNameColumn)

    'Crear un Array para los objetos de DataColumn.
    Dim keys (0) As DataColumn
    Keys (0) = idColumn
    namesTable.PrimaryKey = keys

    'Retornar al Nuevo DataTable.
    MakeNamesTable = namesTable
 End Function

 

 








 



Eliminar:
Puede eliminar un DataRow de DataRowCollection llamando al método Remove de DataRowCollection, o bien llamando al método Delete del objeto DataRow. El método Remove quita de la colección la fila. En cambio, Delete marca el DataRow que se va a quitar. La eliminación real se produce cuando se llama al método AcceptChanges. Al llamar a Delete, se puede comprobar mediante programación qué filas están marcadas para eliminación antes de eliminarlas
Como se menciono antes existen dos métodos para eliminar un objeto DataRow de un objetoDataTable: el método Remove del objeto DataRowCollection y el método Delete del objeto DataRow. Mientras que el método Remove elimina un objeto DataRow de la DataRowCollection, el método Delete únicamente lo marca para su eliminación. La eliminación propiamente dicha se produce cuando la aplicación llama al método AcceptChanges. Si se usa Delete, se puede comprobar mediante programación qué filas están marcadas para eliminación antes de eliminarlas. Cuando una fila está marcada para eliminación, su propiedad RowState está establecida en Deleted.
Si utiliza un DataSet o una DataTable en combinación con un DataAdapter y un origen de datos relacional, utilice el método Delete de la DataRow para quitar la fila. El método Delete marca la fila como Deleted en DataSet o DataTable pero no la quita. En su lugar, cuando el DataAdapter encuentra una fila marcada como Deleted, ejecuta el método DeleteCommand para eliminar la fila en el origen de datos. A continuación se puede quitar la fila permanentemente utilizando el método AcceptChanges. Si utiliza Remove para eliminar la fila, ésta desaparecerá por completo de la tabla, pero el DataAdapter no eliminará la fila del origen de datos.
El método Remove de la DataRowCollection toma una DataRow como argumento y la elimina de la colección, como se muestra en el ejemplo siguiente.
VB
workTable.Rows.Remove(workRow)

Por el contrario, en el siguiente ejemplo se muestra cómo se llama al método Delete en una DataRow para cambiar el RowState a Deleted.
VB
workRow.Delete


Y para actualizar:
Este ejemplo asigna el valor de la variable CompanyName a la columna de datos CompanyName de myDataRow.

Ejemplo
Dim companyName As String = "Microsoft"
Dim myDataRow As DataRow = DsNorthwind1.Customers(0)
myDataRow("CompanyName") = companyName
Este ejemplo necesita:
  • Referencias a los espacios de nombres System y System.Data.
  • Una instancia de un conjunto de datos con tipo denominado DsNorthwind1.
  • Una tabla de datos denominada Customers en el conjunto de datos DsNorthwind1.
  • Un DataColumn denominado CompanyName en la tabla Customers.
  • Al menos un DataRow en la tabla Customers.

2 comentarios:

  1. Falta que indique mediante ejemplo como actualizar y eliminar información de la tabla.

    ResponderEliminar