DataTable Class

Definición

Representa una tabla de datos en memoria. Represents one table of in-memory data.

public class DataTable : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IListSource, System.ComponentModel.ISupportInitialize, System.ComponentModel.ISupportInitializeNotification, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable
Herencia
Derivado
Implementaciones

Ejemplos

En el ejemplo siguiente se crean dos DataTable objetos y uno DataRelation de objetos y agrega los nuevos objetos a un DataSet.The following example creates two DataTable objects and one DataRelation object, and adds the new objects to a DataSet. Las tablas se muestran a continuación, en un DataGridView control.The tables are then displayed in a DataGridView control.

// Put the next line into the Declarations section.
private System.Data.DataSet dataSet;

private void MakeDataTables()
{
    // Run all of the functions. 
    MakeParentTable();
    MakeChildTable();
    MakeDataRelation();
    BindToDataGrid();
}

private void MakeParentTable()
{
    // Create a new DataTable.
    System.Data.DataTable table = new DataTable("ParentTable");
    // Declare variables for DataColumn and DataRow objects.
    DataColumn column;
    DataRow row;

    // Create new DataColumn, set DataType, 
    // ColumnName and add to DataTable.    
    column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.ColumnName = "id";
    column.ReadOnly = true;
    column.Unique = true;
    // Add the Column to the DataColumnCollection.
    table.Columns.Add(column);

    // Create second column.
    column = new DataColumn();
    column.DataType = System.Type.GetType("System.String");
    column.ColumnName = "ParentItem";
    column.AutoIncrement = false;
    column.Caption = "ParentItem";
    column.ReadOnly = false;
    column.Unique = false;
    // Add the column to the table.
    table.Columns.Add(column);

    // Make the ID column the primary key column.
    DataColumn[] PrimaryKeyColumns = new DataColumn[1];
    PrimaryKeyColumns[0] = table.Columns["id"];
    table.PrimaryKey = PrimaryKeyColumns;

    // Instantiate the DataSet variable.
    dataSet = new DataSet();
    // Add the new DataTable to the DataSet.
    dataSet.Tables.Add(table);

    // Create three new DataRow objects and add 
    // them to the DataTable
    for (int i = 0; i<= 2; i++)
    {
        row = table.NewRow();
        row["id"] = i;
        row["ParentItem"] = "ParentItem " + i;
        table.Rows.Add(row);
    }
}

private void MakeChildTable()
{
    // Create a new DataTable.
    DataTable table = new DataTable("childTable");
    DataColumn column;
    DataRow row;

    // Create first column and add to the DataTable.
    column = new DataColumn();
    column.DataType= System.Type.GetType("System.Int32");
    column.ColumnName = "ChildID";
    column.AutoIncrement = true;
    column.Caption = "ID";
    column.ReadOnly = true;
    column.Unique = true;

    // Add the column to the DataColumnCollection.
    table.Columns.Add(column);

    // Create second column.
    column = new DataColumn();
    column.DataType= System.Type.GetType("System.String");
    column.ColumnName = "ChildItem";
    column.AutoIncrement = false;
    column.Caption = "ChildItem";
    column.ReadOnly = false;
    column.Unique = false;
    table.Columns.Add(column);

    // Create third column.
    column = new DataColumn();
    column.DataType= System.Type.GetType("System.Int32");
    column.ColumnName = "ParentID";
    column.AutoIncrement = false;
    column.Caption = "ParentID";
    column.ReadOnly = false;
    column.Unique = false;
    table.Columns.Add(column);

    dataSet.Tables.Add(table);

    // Create three sets of DataRow objects, 
    // five rows each, and add to DataTable.
    for(int i = 0; i <= 4; i ++)
    {
        row = table.NewRow();
        row["childID"] = i;
        row["ChildItem"] = "Item " + i;
        row["ParentID"] = 0 ;
        table.Rows.Add(row);
    }
    for(int i = 0; i <= 4; i ++)
    {
        row = table.NewRow();
        row["childID"] = i + 5;
        row["ChildItem"] = "Item " + i;
        row["ParentID"] = 1 ;
        table.Rows.Add(row);
    }
    for(int i = 0; i <= 4; i ++)
    {
        row = table.NewRow();
        row["childID"] = i + 10;
        row["ChildItem"] = "Item " + i;
        row["ParentID"] = 2 ;
        table.Rows.Add(row);
    }
}

private void MakeDataRelation()
{
    // DataRelation requires two DataColumn 
    // (parent and child) and a name.
    DataColumn parentColumn = 
        dataSet.Tables["ParentTable"].Columns["id"];
    DataColumn childColumn = 
        dataSet.Tables["ChildTable"].Columns["ParentID"];
    DataRelation relation = new 
        DataRelation("parent2Child", parentColumn, childColumn);
    dataSet.Tables["ChildTable"].ParentRelations.Add(relation);
}

private void BindToDataGrid()
{
    // Instruct the DataGrid to bind to the DataSet, with the 
    // ParentTable as the topmost DataTable.
    dataGrid1.SetDataBinding(dataSet,"ParentTable");
}
' Put the next line into the Declarations section.
private dataSet As DataSet 
 
Private Sub MakeDataTables()
    ' Run all of the functions. 
    MakeParentTable()
    MakeChildTable()
    MakeDataRelation()
    BindToDataGrid()
End Sub
 
Private Sub MakeParentTable()
    ' Create a new DataTable.
    Dim table As DataTable = new DataTable("ParentTable")

    ' Declare variables for DataColumn and DataRow objects.
    Dim column As DataColumn 
    Dim row As DataRow 
 
    ' Create new DataColumn, set DataType, ColumnName 
    ' and add to DataTable.    
    column = New DataColumn()
    column.DataType = System.Type.GetType("System.Int32")
    column.ColumnName = "id"
    column.ReadOnly = True
    column.Unique = True

    ' Add the Column to the DataColumnCollection.
    table.Columns.Add(column)
 
    ' Create second column.
    column = New DataColumn()
    column.DataType = System.Type.GetType("System.String")
    column.ColumnName = "ParentItem"
    column.AutoIncrement = False
    column.Caption = "ParentItem"
    column.ReadOnly = False
    column.Unique = False

    ' Add the column to the table.
    table.Columns.Add(column)
 
    ' Make the ID column the primary key column.
    Dim PrimaryKeyColumns(0) As DataColumn
    PrimaryKeyColumns(0)= table.Columns("id")
    table.PrimaryKey = PrimaryKeyColumns
 
    ' Instantiate the DataSet variable.
    dataSet = New DataSet()

    ' Add the new DataTable to the DataSet.
    dataSet.Tables.Add(table)
 
    ' Create three new DataRow objects and add 
    ' them to the DataTable
    Dim i As Integer
    For i = 0 to 2
       row = table.NewRow()
       row("id") = i
       row("ParentItem") = "ParentItem " + i.ToString()
       table.Rows.Add(row)
    Next i
End Sub
 
Private Sub MakeChildTable()
    ' Create a new DataTable.
    Dim table As DataTable = New DataTable("childTable")
    Dim column As DataColumn 
    Dim row As DataRow 
 
    ' Create first column and add to the DataTable.
    column = New DataColumn()
    column.DataType= System.Type.GetType("System.Int32")
    column.ColumnName = "ChildID"
    column.AutoIncrement = True
    column.Caption = "ID"
    column.ReadOnly = True
    column.Unique = True

    ' Add the column to the DataColumnCollection.
    table.Columns.Add(column)
 
    ' Create second column.
    column = New DataColumn()
    column.DataType= System.Type.GetType("System.String")
    column.ColumnName = "ChildItem"
    column.AutoIncrement = False
    column.Caption = "ChildItem"
    column.ReadOnly = False
    column.Unique = False
    table.Columns.Add(column)
 
    ' Create third column.
    column = New DataColumn()
    column.DataType= System.Type.GetType("System.Int32")
    column.ColumnName = "ParentID"
    column.AutoIncrement = False
    column.Caption = "ParentID"
    column.ReadOnly = False
    column.Unique = False
    table.Columns.Add(column)
 
    dataSet.Tables.Add(table)

    ' Create three sets of DataRow objects, five rows each, 
    ' and add to DataTable.
    Dim i As Integer
    For i = 0 to 4
       row = table.NewRow()
       row("childID") = i
       row("ChildItem") = "Item " + i.ToString()
       row("ParentID") = 0 
       table.Rows.Add(row)
    Next i
    For i = 0 to 4
       row = table.NewRow()
       row("childID") = i + 5
       row("ChildItem") = "Item " + i.ToString()
       row("ParentID") = 1 
       table.Rows.Add(row)
    Next i
    For i = 0 to 4
       row = table.NewRow()
       row("childID") = i + 10
       row("ChildItem") = "Item " + i.ToString()
       row("ParentID") = 2 
       table.Rows.Add(row)
    Next i
End Sub
 
Private Sub MakeDataRelation()
    ' DataRelation requires two DataColumn 
    ' (parent and child) and a name.
    Dim parentColumn As DataColumn = _
        dataSet.Tables("ParentTable").Columns("id")
    Dim childColumn As DataColumn = _
        dataSet.Tables("ChildTable").Columns("ParentID")
    Dim relation As DataRelation = new _
        DataRelation("parent2Child", parentColumn, childColumn)
    dataSet.Tables("ChildTable").ParentRelations.Add(relation)
End Sub
 
Private Sub BindToDataGrid()
    ' Instruct the DataGrid to bind to the DataSet, with the 
    ' ParentTable as the topmost DataTable.
    DataGrid1.SetDataBinding(dataSet,"ParentTable")
End Sub
 

Este ejemplo muestra cómo crear una tabla de datos manualmente con definiciones de esquemas específicas:This sample demonstrates how to create a DataTable manually with specific schema definitions:

  • Crear varias tablas de datos y definir las columnas iniciales.Create multiple DataTables and define the initial columns.

  • Crear las restricciones de tabla.Create the table constraints.

  • Inserte los valores y mostrar las tablas.Insert the values and display the tables.

  • Crear las columnas de expresión y mostrar las tablas.Create the expression columns and display the tables.

Proyectos de C# y Visual Basic con este ejemplo de código se pueden encontrar en ejemplos de código para desarrolladores.C# and Visual Basic projects with this code sample can be found on Developer Code Samples.

using System;
using System.Data;

class Program {
   static void Main(string[] args) {
      // Create two tables and add them into the DataSet
      DataTable orderTable = CreateOrderTable();
      DataTable orderDetailTable = CreateOrderDetailTable();
      DataSet salesSet = new DataSet();
      salesSet.Tables.Add(orderTable);
      salesSet.Tables.Add(orderDetailTable);

      // Set the relations between the tables and create the related constraint.
      salesSet.Relations.Add("OrderOrderDetail", orderTable.Columns["OrderId"], orderDetailTable.Columns["OrderId"], true);

      Console.WriteLine("After creating the foreign key constriant, you will see the following error if inserting order detail with the wrong OrderId: ");
      try {
         DataRow errorRow = orderDetailTable.NewRow();
         errorRow[0] = 1;
         errorRow[1] = "O0007";
         orderDetailTable.Rows.Add(errorRow);
      } catch (Exception e) {
         Console.WriteLine(e.Message);
      }
      Console.WriteLine();

      // Insert the rows into the table
      InsertOrders(orderTable);
      InsertOrderDetails(orderDetailTable);

      Console.WriteLine("The initial Order table.");
      ShowTable(orderTable);

      Console.WriteLine("The OrderDetail table.");
      ShowTable(orderDetailTable);

      // Use the Aggregate-Sum on the child table column to get the result.
      DataColumn colSub = new DataColumn("SubTotal", typeof(Decimal), "Sum(Child.LineTotal)");
      orderTable.Columns.Add(colSub);

      // Compute the tax by referencing the SubTotal expression column.
      DataColumn colTax = new DataColumn("Tax", typeof(Decimal), "SubTotal*0.1");
      orderTable.Columns.Add(colTax);

      // If the OrderId is 'Total', compute the due on all orders; or compute the due on this order.
      DataColumn colTotal = new DataColumn("TotalDue", typeof(Decimal), "IIF(OrderId='Total',Sum(SubTotal)+Sum(Tax),SubTotal+Tax)");
      orderTable.Columns.Add(colTotal);

      DataRow row = orderTable.NewRow();
      row["OrderId"] = "Total";
      orderTable.Rows.Add(row);

      Console.WriteLine("The Order table with the expression columns.");
      ShowTable(orderTable);

      Console.WriteLine("Press any key to exit.....");
      Console.ReadKey();
   }

   private static DataTable CreateOrderTable() {
      DataTable orderTable = new DataTable("Order");

      // Define one column.
      DataColumn colId = new DataColumn("OrderId", typeof(String));
      orderTable.Columns.Add(colId);

      DataColumn colDate = new DataColumn("OrderDate", typeof(DateTime));
      orderTable.Columns.Add(colDate);

      // Set the OrderId column as the primary key.
      orderTable.PrimaryKey = new DataColumn[] { colId };

      return orderTable;
   }

   private static DataTable CreateOrderDetailTable() {
      DataTable orderDetailTable = new DataTable("OrderDetail");

      // Define all the columns once.
      DataColumn[] cols ={
                                  new DataColumn("OrderDetailId",typeof(Int32)),
                                  new DataColumn("OrderId",typeof(String)),
                                  new DataColumn("Product",typeof(String)),
                                  new DataColumn("UnitPrice",typeof(Decimal)),
                                  new DataColumn("OrderQty",typeof(Int32)),
                                  new DataColumn("LineTotal",typeof(Decimal),"UnitPrice*OrderQty")
                              };

      orderDetailTable.Columns.AddRange(cols);
      orderDetailTable.PrimaryKey = new DataColumn[] { orderDetailTable.Columns["OrderDetailId"] };
     return orderDetailTable;
   }

   private static void InsertOrders(DataTable orderTable) {
      // Add one row once.
      DataRow row1 = orderTable.NewRow();
      row1["OrderId"] = "O0001";
      row1["OrderDate"] = new DateTime(2013, 3, 1);
      orderTable.Rows.Add(row1);

      DataRow row2 = orderTable.NewRow();
      row2["OrderId"] = "O0002";
      row2["OrderDate"] = new DateTime(2013, 3, 12);
      orderTable.Rows.Add(row2);

      DataRow row3 = orderTable.NewRow();
      row3["OrderId"] = "O0003";
      row3["OrderDate"] = new DateTime(2013, 3, 20);
      orderTable.Rows.Add(row3);
   }

   private static void InsertOrderDetails(DataTable orderDetailTable) {
      // Use an Object array to insert all the rows .
      // Values in the array are matched sequentially to the columns, based on the order in which they appear in the table.
      Object[] rows = {
                                 new Object[]{1,"O0001","Mountain Bike",1419.5,36},
                                 new Object[]{2,"O0001","Road Bike",1233.6,16},
                                 new Object[]{3,"O0001","Touring Bike",1653.3,32},
                                 new Object[]{4,"O0002","Mountain Bike",1419.5,24},
                                 new Object[]{5,"O0002","Road Bike",1233.6,12},
                                 new Object[]{6,"O0003","Mountain Bike",1419.5,48},
                                 new Object[]{7,"O0003","Touring Bike",1653.3,8},
                             };

      foreach (Object[] row in rows) {
         orderDetailTable.Rows.Add(row);
      }
   }

   private static void ShowTable(DataTable table) {
      foreach (DataColumn col in table.Columns) {
         Console.Write("{0,-14}", col.ColumnName);
      }
      Console.WriteLine();

      foreach (DataRow row in table.Rows) {
         foreach (DataColumn col in table.Columns) {
            if (col.DataType.Equals(typeof(DateTime)))
               Console.Write("{0,-14:d}", row[col]);
            else if (col.DataType.Equals(typeof(Decimal)))
               Console.Write("{0,-14:C}", row[col]);
            else
               Console.Write("{0,-14}", row[col]);           
         }
         Console.WriteLine();
      }
      Console.WriteLine();
   }
}
Imports System.Data

Class Program
   Public Shared Sub Main(args As String())
      ' Create two tables and add them into the DataSet
      Dim orderTable As DataTable = CreateOrderTable()
      Dim orderDetailTable As DataTable = CreateOrderDetailTable()
      Dim salesSet As New DataSet()
      salesSet.Tables.Add(orderTable)
      salesSet.Tables.Add(orderDetailTable)

      ' Set the relations between the tables and create the related constraint.
      salesSet.Relations.Add("OrderOrderDetail", orderTable.Columns("OrderId"), orderDetailTable.Columns("OrderId"), True)

      Console.WriteLine("After creating the foreign key constriant, you will see the following error if inserting order detail with the wrong OrderId: ")
      Try
         Dim errorRow As DataRow = orderDetailTable.NewRow()
         errorRow(0) = 1
         errorRow(1) = "O0007"
         orderDetailTable.Rows.Add(errorRow)
      Catch e As Exception
         Console.WriteLine(e.Message)
      End Try
      Console.WriteLine()

      ' Insert the rows into the table
      InsertOrders(orderTable)
      InsertOrderDetails(orderDetailTable)

      Console.WriteLine("The initial Order table.")
      ShowTable(orderTable)

      Console.WriteLine("The OrderDetail table.")
      ShowTable(orderDetailTable)

      ' Use the Aggregate-Sum on the child table column to get the result.
      Dim colSub As New DataColumn("SubTotal", GetType([Decimal]), "Sum(Child.LineTotal)")
      orderTable.Columns.Add(colSub)

      ' Compute the tax by referencing the SubTotal expression column.
      Dim colTax As New DataColumn("Tax", GetType([Decimal]), "SubTotal*0.1")
      orderTable.Columns.Add(colTax)

      ' If the OrderId is 'Total', compute the due on all orders; or compute the due on this order.
      Dim colTotal As New DataColumn("TotalDue", GetType([Decimal]), "IIF(OrderId='Total',Sum(SubTotal)+Sum(Tax),SubTotal+Tax)")
      orderTable.Columns.Add(colTotal)

      Dim row As DataRow = orderTable.NewRow()
      row("OrderId") = "Total"
      orderTable.Rows.Add(row)

      Console.WriteLine("The Order table with the expression columns.")
      ShowTable(orderTable)

      Console.WriteLine("Press any key to exit.....")
      Console.ReadKey()
   End Sub

   Private Shared Function CreateOrderTable() As DataTable
      Dim orderTable As New DataTable("Order")

      ' Define one column.
      Dim colId As New DataColumn("OrderId", GetType([String]))
      orderTable.Columns.Add(colId)

      Dim colDate As New DataColumn("OrderDate", GetType(DateTime))
      orderTable.Columns.Add(colDate)

      ' Set the OrderId column as the primary key.
      orderTable.PrimaryKey = New DataColumn() {colId}

      Return orderTable
   End Function

   Private Shared Function CreateOrderDetailTable() As DataTable
      Dim orderDetailTable As New DataTable("OrderDetail")

      ' Define all the columns once.
      Dim cols As DataColumn() = {New DataColumn("OrderDetailId", GetType(Int32)), New DataColumn("OrderId", GetType([String])), New DataColumn("Product", GetType([String])), New DataColumn("UnitPrice", GetType([Decimal])), New DataColumn("OrderQty", GetType(Int32)), New DataColumn("LineTotal", GetType([Decimal]), "UnitPrice*OrderQty")}

      orderDetailTable.Columns.AddRange(cols)
      orderDetailTable.PrimaryKey = New DataColumn() {orderDetailTable.Columns("OrderDetailId")}
      Return orderDetailTable
   End Function

   Private Shared Sub InsertOrders(orderTable As DataTable)
      ' Add one row once.
      Dim row1 As DataRow = orderTable.NewRow()
      row1("OrderId") = "O0001"
      row1("OrderDate") = New DateTime(2013, 3, 1)
      orderTable.Rows.Add(row1)

      Dim row2 As DataRow = orderTable.NewRow()
      row2("OrderId") = "O0002"
      row2("OrderDate") = New DateTime(2013, 3, 12)
      orderTable.Rows.Add(row2)

      Dim row3 As DataRow = orderTable.NewRow()
      row3("OrderId") = "O0003"
      row3("OrderDate") = New DateTime(2013, 3, 20)
      orderTable.Rows.Add(row3)
   End Sub

   Private Shared Sub InsertOrderDetails(orderDetailTable As DataTable)
      ' Use an Object array to insert all the rows .
      ' Values in the array are matched sequentially to the columns, based on the order in which they appear in the table.
      Dim rows As [Object]() = {New [Object]() {1, "O0001", "Mountain Bike", 1419.5, 36}, New [Object]() {2, "O0001", "Road Bike", 1233.6, 16}, New [Object]() {3, "O0001", "Touring Bike", 1653.3, 32}, New [Object]() {4, "O0002", "Mountain Bike", 1419.5, 24}, New [Object]() {5, "O0002", "Road Bike", 1233.6, 12}, New [Object]() {6, "O0003", "Mountain Bike", 1419.5, 48}, _
         New [Object]() {7, "O0003", "Touring Bike", 1653.3, 8}}

      For Each row As [Object]() In rows
         orderDetailTable.Rows.Add(row)
      Next
   End Sub

   Private Shared Sub ShowTable(table As DataTable)
      For Each col As DataColumn In table.Columns
         Console.Write("{0,-14}", col.ColumnName)
      Next
      Console.WriteLine()

      For Each row As DataRow In table.Rows
         For Each col As DataColumn In table.Columns
            If col.DataType.Equals(GetType(DateTime)) Then
               Console.Write("{0,-14:d}", row(col))
            ElseIf col.DataType.Equals(GetType([Decimal])) Then
               Console.Write("{0,-14:C}", row(col))
            Else
               Console.Write("{0,-14}", row(col))
            End If
         Next
         Console.WriteLine()
      Next
      Console.WriteLine()
   End Sub
End Class

Comentarios

El DataTable es un objeto central de la biblioteca ADO.NET.The DataTable is a central object in the ADO.NET library. Objetos que utilizan el DataTable incluyen el DataSet y DataView.Other objects that use the DataTable include the DataSet and the DataView.

Al obtener acceso a DataTable objetos, tenga en cuenta que son condicionalmente distingue mayúsculas de minúsculas.When accessing DataTable objects, note that they are conditionally case sensitive. Por ejemplo, si uno DataTable se denomina "mydatatable" y otro se denomina "Mydatatable", se considerará una cadena utilizada para buscar una de las tablas como distingue mayúsculas de minúsculas.For example, if one DataTable is named "mydatatable" and another is named "Mydatatable", a string used to search for one of the tables is regarded as case sensitive. Sin embargo, si existe "mydatatable" y "Mydatatable" no es así, la cadena de búsqueda se considerará como con diferenciación entre mayúsculas y minúsculas.However, if "mydatatable" exists and "Mydatatable" does not, the search string is regarded as case insensitive. Un DataSet puede contener dos DataTable objetos que tienen el mismo TableName valor pero es diferente de la propiedad Namespace los valores de propiedad.A DataSet can contain two DataTable objects that have the same TableName property value but different Namespace property values. Para obtener más información sobre cómo trabajar con DataTable objetos, vea crear un objeto DataTable.For more information about working with DataTable objects, see Creating a DataTable.

Si va a crear un DataTable mediante programación, primero debe definir su esquema agregando DataColumn objetos a la DataColumnCollection (tiene acceso a través del Columns propiedad).If you are creating a DataTable programmatically, you must first define its schema by adding DataColumn objects to the DataColumnCollection (accessed through the Columns property). Para obtener más información acerca de cómo agregar DataColumn objetos, vea agregar columnas a un objeto DataTable.For more information about adding DataColumn objects, see Adding Columns to a DataTable.

Para agregar filas a una DataTable, primero debe usar el NewRow método para devolver un nuevo DataRow objeto.To add rows to a DataTable, you must first use the NewRow method to return a new DataRow object. El NewRow método devuelve una fila con el esquema de la DataTable, tal y como se define mediante la tabla DataColumnCollection.The NewRow method returns a row with the schema of the DataTable, as it is defined by the table's DataColumnCollection. El número máximo de filas que un DataTable puede almacén es 16.777.216.The maximum number of rows that a DataTable can store is 16,777,216. Para obtener más información, consulte agregar datos a un objeto DataTable.For more information, see Adding Data to a DataTable.

El DataTable también contiene una colección de Constraint objetos que pueden usarse para garantizar la integridad de los datos.The DataTable also contains a collection of Constraint objects that can be used to ensure the integrity of the data. Para obtener más información, consulte restricciones de DataTable.For more information, see DataTable Constraints.

Hay muchos DataTable eventos que se pueden usar para determinar cuándo se realizan cambios en una tabla.There are many DataTable events that can be used to determine when changes are made to a table. Entre estos se incluyen los eventos RowChanged, RowChanging, RowDeleting y RowDeleted.These include RowChanged, RowChanging, RowDeleting, and RowDeleted. Para obtener más información acerca de los eventos que se pueden usar con un DataTable, consulte controlar eventos de DataTable.For more information about the events that can be used with a DataTable, see Handling DataTable Events.

Cuando una instancia de DataTable creada, parte de la lectura y escritura se establecen propiedades en sus valores iniciales.When an instance of DataTable is created, some of the read/write properties are set to initial values. Para obtener una lista de estos valores, vea el DataTable.DataTable tema del constructor.For a list of these values, see the DataTable.DataTable constructor topic.

Nota

El DataSet y DataTable objetos heredan de MarshalByValueComponenty admiten la ISerializable interfaz para la comunicación remota de .NET Framework.The DataSet and DataTable objects inherit from MarshalByValueComponent, and support the ISerializable interface for .NET Framework remoting. Estos son los únicos objetos ADO.NET que puede usar para la comunicación remota de .NET Framework.These are the only ADO.NET objects that you can use for .NET Framework remoting.

Constructores

DataTable()

Inicializa una nueva instancia de la clase DataTable sin argumentos. Initializes a new instance of the DataTable class with no arguments.

DataTable(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase DataTable con el objeto SerializationInfo y la estructura StreamingContext. Initializes a new instance of the DataTable class with the SerializationInfo and the StreamingContext.

DataTable(String)

Inicializa una nueva instancia de la clase DataTable con el nombre de tabla especificado. Initializes a new instance of the DataTable class with the specified table name.

DataTable(String, String)

Inicializa una nueva instancia de la clase DataTable utilizando el nombre de tabla y el espacio de nombres especificados. Initializes a new instance of the DataTable class using the specified table name and namespace.

Campos

fInitInProgress

Comprueba si la inicialización está en curso. Checks whether initialization is in progress. La inicialización se produce en tiempo de ejecución. The initialization occurs at run time.

Propiedades

CaseSensitive

Indica si las comparaciones de cadenas en la tabla distinguen entre mayúsculas y minúsculas. Indicates whether string comparisons within the table are case-sensitive.

ChildRelations

Obtiene la colección de relaciones secundarias para este DataTable. Gets the collection of child relations for this DataTable.

Columns

Obtiene la colección de columnas que pertenecen a esta tabla. Gets the collection of columns that belong to this table.

Constraints

Obtiene la colección de restricciones mantenidas por esta tabla. Gets the collection of constraints maintained by this table.

Container

Obtiene el contenedor del componente. Gets the container for the component.

(Inherited from MarshalByValueComponent)
DataSet

Obtiene el objeto DataSet al que pertenece esta tabla. Gets the DataSet to which this table belongs.

DefaultView

Obtiene una vista personalizada de la tabla que puede incluir una vista filtrada o una posición del cursor. Gets a customized view of the table that may include a filtered view, or a cursor position.

DesignMode

Obtiene un valor que indica si el componente está actualmente en modo de diseño. Gets a value indicating whether the component is currently in design mode.

(Inherited from MarshalByValueComponent)
DisplayExpression

Obtiene o establece la expresión que devuelve un valor utilizado para representar esta tabla en la interfaz de usuario. Gets or sets the expression that returns a value used to represent this table in the user interface. La propiedad DisplayExpression permite mostrar el nombre de esta tabla en una interfaz de usuario. The DisplayExpression property lets you display the name of this table in a user interface.

Events

Obtiene la lista de controladores de eventos asociados a este componente. Gets the list of event handlers that are attached to this component.

(Inherited from MarshalByValueComponent)
ExtendedProperties

Obtiene la colección de información personalizada del usuario. Gets the collection of customized user information.

HasErrors

Obtiene un valor que indica si hay errores en cualquier fila de cualquier tabla del DataSet al que pertenece la tabla. Gets a value indicating whether there are errors in any of the rows in any of the tables of the DataSet to which the table belongs.

IsInitialized

Obtiene un valor que indica si el objeto DataTable está inicializado. Gets a value that indicates whether the DataTable is initialized.

Locale

Obtiene o establece la información de configuración regional que se utiliza para comparar cadenas de la tabla. Gets or sets the locale information used to compare strings within the table.

MinimumCapacity

Obtiene o establece el tamaño inicial para esta tabla. Gets or sets the initial starting size for this table.

Namespace

Obtiene o establece el espacio de nombres para la representación XML de los datos almacenados en el objeto DataTable. Gets or sets the namespace for the XML representation of the data stored in the DataTable.

ParentRelations

Obtiene la colección de relaciones primarias para este DataTable. Gets the collection of parent relations for this DataTable.

Prefix

Obtiene o establece el espacio de nombres para la representación XML de los datos almacenados en el objeto DataTable. Gets or sets the namespace for the XML representation of the data stored in the DataTable.

PrimaryKey

Obtiene o establece una matriz de columnas que funcionan como claves principales para la tabla de datos. Gets or sets an array of columns that function as primary keys for the data table.

RemotingFormat

Obtiene o establece el formato de serialización. Gets or sets the serialization format.

Rows

Obtiene la colección de filas que pertenecen a esta tabla. Gets the collection of rows that belong to this table.

Site

Obtiene o establece una interfaz ISite para el objeto DataTable. Gets or sets an ISite for the DataTable.

TableName

Obtiene o establece el nombre de DataTable. Gets or sets the name of the DataTable.

Métodos

AcceptChanges()

Confirma todos los cambios realizados en esta tabla desde la última vez que se llamó a AcceptChanges(). Commits all the changes made to this table since the last time AcceptChanges() was called.

BeginInit()

Activa la inicialización de un objeto DataTable que se emplea en un formulario o que utiliza otro componente. Begins the initialization of a DataTable that is used on a form or used by another component. La inicialización se produce en tiempo de ejecución. The initialization occurs at run time.

BeginLoadData()

Desactiva notificaciones, mantenimiento de índices y restricciones mientras se cargan datos. Turns off notifications, index maintenance, and constraints while loading data.

Clear()

Borra el DataTable de todos los datos. Clears the DataTable of all data.

Clone()

Clona la estructura de DataTable, incluidos todos los esquemas y restricciones de DataTable. Clones the structure of the DataTable, including all DataTable schemas and constraints.

Compute(String, String)

Calcula la expresión dada de las filas actuales que cumplen los criterios de filtro. Computes the given expression on the current rows that pass the filter criteria.

Copy()

Copia la estructura y los datos para este objeto DataTable. Copies both the structure and data for this DataTable.

CreateDataReader()

Devuelve un objeto DataTableReader que corresponde a los datos incluidos en este objeto DataTable. Returns a DataTableReader corresponding to the data within this DataTable.

CreateInstance()

Crea una nueva instancia de DataTable. Creates a new instance of DataTable.

Dispose()

Libera todos los recursos que usa MarshalByValueComponent. Releases all resources used by the MarshalByValueComponent.

(Inherited from MarshalByValueComponent)
Dispose(Boolean)

Libera los recursos no administrados que usa MarshalByValueComponent y, de forma opcional, libera los recursos administrados. Releases the unmanaged resources used by the MarshalByValueComponent and optionally releases the managed resources.

(Inherited from MarshalByValueComponent)
EndInit()

Finaliza la inicialización de un objeto DataTable que se emplea en un formulario o que utiliza otro componente. Ends the initialization of a DataTable that is used on a form or used by another component. La inicialización se produce en tiempo de ejecución. The initialization occurs at run time.

EndLoadData()

Activa notificaciones, mantenimiento de índices y restricciones después de cargar datos. Turns on notifications, index maintenance, and constraints after loading data.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual. Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetChanges()

Obtiene una copia del objeto DataTable que contiene todos los cambios que se le han realizado desde que se cargó o se llamó a AcceptChanges() por última vez. Gets a copy of the DataTable that contains all changes made to it since it was loaded or AcceptChanges() was last called.

GetChanges(DataRowState)

Obtiene una copia del objeto DataTable que contiene todos los cambios que se le han realizado desde la última vez que se cargó, o desde que se llamó a AcceptChanges(), filtrado por DataRowState. Gets a copy of the DataTable containing all changes made to it since it was last loaded, or since AcceptChanges() was called, filtered by DataRowState.

GetDataTableSchema(XmlSchemaSet)

Este método devuelve una instancia de XmlSchemaSet que contiene el Lenguaje de descripción de servicios Web (WSDL) que describe DataTable para servicios Web. This method returns an XmlSchemaSet instance containing the Web Services Description Language (WSDL) that describes the DataTable for Web Services.

GetErrors()

Obtiene una matriz de objetos DataRow que contienen errores. Gets an array of DataRow objects that contain errors.

GetHashCode()

Sirve como la función hash predeterminada. Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext)

Rellena un objeto de información de serialización con los datos necesarios para serializar DataTable. Populates a serialization information object with the data needed to serialize the DataTable.

GetRowType()

Obtiene el tipo de fila. Gets the row type.

GetSchema()

Para una descripción de este miembro, vea GetSchema(). For a description of this member, see GetSchema().

GetService(Type)

Obtiene el implementador de IServiceProvider. Gets the implementer of the IServiceProvider.

(Inherited from MarshalByValueComponent)
GetType()

Obtiene el Type de la instancia actual. Gets the Type of the current instance.

(Inherited from Object)
ImportRow(DataRow)

Copia un DataRow en un DataTable conservando los valores de propiedad, así como los valores originales y actuales. Copies a DataRow into a DataTable, preserving any property settings, as well as original and current values.

Load(IDataReader)

Rellena un objeto DataTable con valores de un origen de datos utilizando la interfaz IDataReader proporcionada. Fills a DataTable with values from a data source using the supplied IDataReader. Si el objeto DataTable ya contiene filas, los datos de entrada del origen de datos se combinan con las filas existentes. If the DataTable already contains rows, the incoming data from the data source is merged with the existing rows.

Load(IDataReader, LoadOption)

Rellena un objeto DataTable con valores de un origen de datos utilizando la interfaz IDataReader proporcionada. Fills a DataTable with values from a data source using the supplied IDataReader. Si el objeto DataTable ya contiene las filas, los datos de entrada del origen de datos se combinan con las filas existentes conforme al valor del parámetro loadOption. If the DataTable already contains rows, the incoming data from the data source is merged with the existing rows according to the value of the loadOption parameter.

Load(IDataReader, LoadOption, FillErrorEventHandler)

Rellena un objeto DataTable con valores de un origen de datos utilizando la interfaz IDataReader proporcionada y un delegado de control de errores. Fills a DataTable with values from a data source using the supplied IDataReader using an error-handling delegate.

LoadDataRow(Object[], Boolean)

Busca y actualiza una fila específica. Finds and updates a specific row. Si no encuentra ninguna fila coincidente, se crea una nueva con los valores dados. If no matching row is found, a new row is created using the given values.

LoadDataRow(Object[], LoadOption)

Busca y actualiza una fila específica. Finds and updates a specific row. Si no encuentra ninguna fila coincidente, se crea una nueva con los valores dados. If no matching row is found, a new row is created using the given values.

MemberwiseClone()

Crea una copia superficial del Object actual. Creates a shallow copy of the current Object.

(Inherited from Object)
Merge(DataTable)

Combina el objeto DataTable especificado con el objeto DataTable actual. Merge the specified DataTable with the current DataTable.

Merge(DataTable, Boolean)

Combina el objeto DataTable especificado con el objeto DataTable actual, indicando si se deben conservar los cambios en el objeto DataTable actual. Merge the specified DataTable with the current DataTable, indicating whether to preserve changes in the current DataTable.

Merge(DataTable, Boolean, MissingSchemaAction)

Combina el objeto DataTable especificado con el objeto DataTable actual, indicando si se van a conservar los cambios y cómo se va a controlar el esquema que falta en el objeto DataTable actual. Merge the specified DataTable with the current DataTable, indicating whether to preserve changes and how to handle missing schema in the current DataTable.

NewRow()

Crea un nuevo DataRow con el mismo esquema que la tabla. Creates a new DataRow with the same schema as the table.

NewRowArray(Int32)

Devuelve una matriz de DataRow. Returns an array of DataRow.

NewRowFromBuilder(DataRowBuilder)

Crea una nueva fila a partir de una existente. Creates a new row from an existing row.

OnColumnChanged(DataColumnChangeEventArgs)

Genera el evento ColumnChanged. Raises the ColumnChanged event.

OnColumnChanging(DataColumnChangeEventArgs)

Genera el evento ColumnChanging. Raises the ColumnChanging event.

OnPropertyChanging(PropertyChangedEventArgs)

Genera el evento PropertyChanged. Raises the PropertyChanged event.

OnRemoveColumn(DataColumn)

Notifica a DataTable que se ha quitado un DataColumn. Notifies the DataTable that a DataColumn is being removed.

OnRowChanged(DataRowChangeEventArgs)

Genera el evento RowChanged. Raises the RowChanged event.

OnRowChanging(DataRowChangeEventArgs)

Genera el evento RowChanging. Raises the RowChanging event.

OnRowDeleted(DataRowChangeEventArgs)

Genera el evento RowDeleted. Raises the RowDeleted event.

OnRowDeleting(DataRowChangeEventArgs)

Genera el evento RowDeleting. Raises the RowDeleting event.

OnTableCleared(DataTableClearEventArgs)

Genera el evento TableCleared. Raises the TableCleared event.

OnTableClearing(DataTableClearEventArgs)

Genera el evento TableClearing. Raises the TableClearing event.

OnTableNewRow(DataTableNewRowEventArgs)

Genera el evento TableNewRow. Raises the TableNewRow event.

ReadXml(Stream)

Lee los datos y el esquema XML en el objeto DataTable mediante el objeto Stream especificado. Reads XML schema and data into the DataTable using the specified Stream.

ReadXml(String)

Lee los datos y el esquema XML en el objeto DataTable desde el archivo especificado. Reads XML schema and data into the DataTable from the specified file.

ReadXml(TextReader)

Lee los datos y el esquema XML en el objeto DataTable mediante el objeto TextReader especificado. Reads XML schema and data into the DataTable using the specified TextReader.

ReadXml(XmlReader)

Lee datos y el esquema XML en el objeto DataTable mediante el objeto XmlReader especificado. Reads XML Schema and Data into the DataTable using the specified XmlReader.

ReadXmlSchema(Stream)

Lee un esquema XML en el objeto DataTable utilizando la secuencia especificada. Reads an XML schema into the DataTable using the specified stream.

ReadXmlSchema(String)

Lee un esquema XML en el objeto DataTable desde el archivo especificado. Reads an XML schema into the DataTable from the specified file.

ReadXmlSchema(TextReader)

Lee un esquema XML en el objeto DataTable utilizando el objeto TextReader especificado. Reads an XML schema into the DataTable using the specified TextReader.

ReadXmlSchema(XmlReader)

Lee un esquema XML en el objeto DataTable utilizando el objeto XmlReader especificado. Reads an XML schema into the DataTable using the specified XmlReader.

ReadXmlSerializable(XmlReader)

Lee de una secuencia XML. Reads from an XML stream.

RejectChanges()

Deshace todos los cambios que se hayan realizado en la tabla desde que se cargó o se llamó a AcceptChanges() por última vez. Rolls back all changes that have been made to the table since it was loaded, or the last time AcceptChanges() was called.

Reset()

Restablece el estado original del objeto DataTable. Resets the DataTable to its original state. El reinicio quita todos los datos, índices, relaciones y columnas de la tabla. Reset removes all data, indexes, relations, and columns of the table. Si un conjunto de datos incluye un DataTable, la tabla todavía formará parte del conjunto de datos una vez restaurada la tabla. If a DataSet includes a DataTable, the table will still be part of the DataSet after the table is reset.

Select()

Obtiene una matriz de todos los objetos DataRow. Gets an array of all DataRow objects.

Select(String)

Obtiene una matriz de todos los objetos DataRow que coinciden con los criterios de filtro. Gets an array of all DataRow objects that match the filter criteria.

Select(String, String)

Obtiene una matriz de todos los objetos DataRow que coinciden con los criterios de filtro, en el criterio de ordenación especificado. Gets an array of all DataRow objects that match the filter criteria, in the specified sort order.

Select(String, String, DataViewRowState)

Obtiene una matriz de todos los objetos DataRow que coinciden con el filtro en el orden de clasificación y que coinciden con el estado especificado. Gets an array of all DataRow objects that match the filter in the order of the sort that match the specified state.

ToString()

Obtiene TableName y DisplayExpression, si hay alguna, como cadena concatenada. Gets the TableName and DisplayExpression, if there is one as a concatenated string.

WriteXml(Stream)

Escribe el contenido actual de DataTable como datos XML mediante el Stream especificado. Writes the current contents of the DataTable as XML using the specified Stream.

WriteXml(Stream, Boolean)

Escribe el contenido actual de DataTable como datos XML mediante el Stream especificado. Writes the current contents of the DataTable as XML using the specified Stream. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXml(Stream, XmlWriteMode)

Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataTable en el archivo indicado mediante la enumeración XmlWriteMode especificada. Writes the current data, and optionally the schema, for the DataTable to the specified file using the specified XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema.

WriteXml(Stream, XmlWriteMode, Boolean)

Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataTable en el archivo indicado mediante la enumeración XmlWriteMode especificada. Writes the current data, and optionally the schema, for the DataTable to the specified file using the specified XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXml(String)

Escribe el contenido actual del objeto DataTable como elemento XML utilizando el archivo especificado. Writes the current contents of the DataTable as XML using the specified file.

WriteXml(String, Boolean)

Escribe el contenido actual del objeto DataTable como elemento XML utilizando el archivo especificado. Writes the current contents of the DataTable as XML using the specified file. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXml(String, XmlWriteMode)

Escribe los datos actuales y, de forma opcional, el esquema para el DataTable mediante el archivo y la enumeración XmlWriteMode especificados. Writes the current data, and optionally the schema, for the DataTable using the specified file and XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema.

WriteXml(String, XmlWriteMode, Boolean)

Escribe los datos actuales y, de forma opcional, el esquema para el DataTable mediante el archivo y la enumeración XmlWriteMode especificados. Writes the current data, and optionally the schema, for the DataTable using the specified file and XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXml(TextWriter)

Escribe el contenido actual de DataTable como datos XML mediante el TextWriter especificado. Writes the current contents of the DataTable as XML using the specified TextWriter.

WriteXml(TextWriter, Boolean)

Escribe el contenido actual de DataTable como datos XML mediante el TextWriter especificado. Writes the current contents of the DataTable as XML using the specified TextWriter. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXml(TextWriter, XmlWriteMode)

Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataTable mediante el objeto TextWriter y la enumeración XmlWriteMode especificados. Writes the current data, and optionally the schema, for the DataTable using the specified TextWriter and XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema.

WriteXml(TextWriter, XmlWriteMode, Boolean)

Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataTable mediante el objeto TextWriter y la enumeración XmlWriteMode especificados. Writes the current data, and optionally the schema, for the DataTable using the specified TextWriter and XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXml(XmlWriter)

Escribe el contenido actual de DataTable como datos XML mediante el XmlWriter especificado. Writes the current contents of the DataTable as XML using the specified XmlWriter.

WriteXml(XmlWriter, Boolean)

Escribe el contenido actual de DataTable como datos XML mediante el XmlWriter especificado. Writes the current contents of the DataTable as XML using the specified XmlWriter.

WriteXml(XmlWriter, XmlWriteMode)

Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataTable mediante el objeto XmlWriter y la enumeración XmlWriteMode especificados. Writes the current data, and optionally the schema, for the DataTable using the specified XmlWriter and XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema.

WriteXml(XmlWriter, XmlWriteMode, Boolean)

Escribe los datos actuales y, de forma opcional, el esquema para el objeto DataTable mediante el objeto XmlWriter y la enumeración XmlWriteMode especificados. Writes the current data, and optionally the schema, for the DataTable using the specified XmlWriter and XmlWriteMode. Para escribir el esquema, establezca el valor del parámetro mode en WriteSchema. To write the schema, set the value for the mode parameter to WriteSchema. Para guardar los datos de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the data for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(Stream)

Escribe en la secuencia especificada la estructura de datos actual del objeto DataTable como esquema XML. Writes the current data structure of the DataTable as an XML schema to the specified stream.

WriteXmlSchema(Stream, Boolean)

Escribe en la secuencia especificada la estructura de datos actual del objeto DataTable como esquema XML. Writes the current data structure of the DataTable as an XML schema to the specified stream. Para guardar el esquema de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(String)

Escribe en el archivo especificado la estructura de datos actual del objeto DataTable como esquema XML. Writes the current data structure of the DataTable as an XML schema to the specified file.

WriteXmlSchema(String, Boolean)

Escribe en el archivo especificado la estructura de datos actual del objeto DataTable como esquema XML. Writes the current data structure of the DataTable as an XML schema to the specified file. Para guardar el esquema de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(TextWriter)

Escribe la estructura de datos actual del objeto DataTable como esquema XML, utilizando el objeto TextWriter especificado. Writes the current data structure of the DataTable as an XML schema using the specified TextWriter.

WriteXmlSchema(TextWriter, Boolean)

Escribe la estructura de datos actual del objeto DataTable como esquema XML, utilizando el objeto TextWriter especificado. Writes the current data structure of the DataTable as an XML schema using the specified TextWriter. Para guardar el esquema de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

WriteXmlSchema(XmlWriter)

Escribe la estructura de datos actual del objeto DataTable como esquema XML, utilizando el objeto XmlWriter especificado. Writes the current data structure of the DataTable as an XML schema using the specified XmlWriter.

WriteXmlSchema(XmlWriter, Boolean)

Escribe la estructura de datos actual del objeto DataTable como esquema XML, utilizando el objeto XmlWriter especificado. Writes the current data structure of the DataTable as an XML schema using the specified XmlWriter. Para guardar el esquema de la tabla y de todos sus descendientes, establezca el parámetro writeHierarchy en true. To save the schema for the table and all its descendants, set the writeHierarchy parameter to true.

Eventos

ColumnChanged

Se produce cuando se ha cambiado un valor para el DataColumn especificado de un DataRow. Occurs after a value has been changed for the specified DataColumn in a DataRow.

ColumnChanging

Se produce cuando se ha cambiado un valor para el DataColumn especificado de un DataRow. Occurs when a value is being changed for the specified DataColumn in a DataRow.

Disposed

Agrega un controlador de eventos para escuchar el evento Disposed en el componente. Adds an event handler to listen to the Disposed event on the component.

(Inherited from MarshalByValueComponent)
Initialized

Se produce después de inicializar DataTable. Occurs after the DataTable is initialized.

RowChanged

Ocurre después de modificar correctamente una DataRow. Occurs after a DataRow has been changed successfully.

RowChanging

Se produce cuando se cambia un DataRow. Occurs when a DataRow is changing.

RowDeleted

Se produce después de eliminar una fila de la tabla. Occurs after a row in the table has been deleted.

RowDeleting

Se produce cuando se va a eliminar una fila de la tabla. Occurs before a row in the table is about to be deleted.

TableCleared

Se produce después de borrar un objeto DataTable. Occurs after a DataTable is cleared.

TableClearing

Se produce cuando se borra un objeto DataTable. Occurs when a DataTable is cleared.

TableNewRow

Se produce cuando se inserta un nuevo objeto DataRow. Occurs when a new DataRow is inserted.

Implementaciones de interfaz explícitas

IListSource.ContainsListCollection

Para una descripción de este miembro, vea ContainsListCollection. For a description of this member, see ContainsListCollection.

IListSource.GetList()

Para una descripción de este miembro, vea GetList(). For a description of this member, see GetList().

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
IXmlSerializable.GetSchema()

Para una descripción de este miembro, vea GetSchema(). For a description of this member, see GetSchema().

IXmlSerializable.ReadXml(XmlReader)

Para una descripción de este miembro, vea ReadXml(XmlReader). For a description of this member, see ReadXml(XmlReader).

IXmlSerializable.WriteXml(XmlWriter)

Para una descripción de este miembro, vea WriteXml(XmlWriter). For a description of this member, see WriteXml(XmlWriter).

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para las operaciones de lectura multiproceso. This type is safe for multithreaded read operations. Debe sincronizar operaciones de escritura. You must synchronize any write operations.