Compartir a través de


Cómo: Editar filas en un objeto DataTable

Para editar una fila existente en DataTable, necesita buscar el objeto DataRow que desea editar y, a continuación, asignar los valores actualizados a las columnas deseadas.

En los ejemplos siguientes se muestra cómo buscar y modificar las filas en los conjuntos de datos con y sin tipo.

Editar un registro de un objeto DataTable cuando no conoce el índice de la fila que desea editar

Normalmente, no conoce el índice de la fila que desea editar. Las tablas de datos en conjuntos de datos con tipo se crean con un método FindBy que utiliza la clave principal de la tabla para buscar una fila.

Para actualizar los registros existentes en conjuntos de datos con tipo (índice de fila no conocido)

  • Asigne un objeto DataRow concreto a una variable mediante el método FindBy generado y, a continuación, use dicha variable para tener acceso a las columnas que desea editar y asígneles valores nuevos.

    En el ejemplo siguiente, la columna CustomerID es la clave principal de la tabla Customers, por lo que el método FindBy generado es FindByCustomerID. En este ejemplo se supone que ha generado un conjunto de datos con tipo denominado NorthwindDataSet y que tiene una instancia de este conjunto de datos con tipo denominado northwindDataSet1.

    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    
    customersRow.CompanyName = "Updated Company Name"
    customersRow.City = "Seattle"
    
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    
    customersRow.CompanyName = "Updated Company Name";
    customersRow.City = "Seattle";;
    

Normalmente, no conoce el índice de la fila que desea editar. Las tablas de datos en conjuntos de datos sin tipo se crean con un método Select que devuelve una matriz de DataRow.

Para actualizar los registros existentes en conjuntos de datos sin tipo (índice de fila no conocido)

  • Utilice el método Select de DataTable para buscar una fila concreta y asignar nuevos valores a las columnas deseadas

    En el ejemplo siguiente, la columna CustomerID es la clave principal de la tabla Customers, por lo que llamar al método Select y buscar la clave principal hará que sólo se encuentre una fila. El tipo de valor devuelto todavía es una matriz de DataRow, por lo que tenemos acceso al índice (0), o primera fila, de la matriz. En este ejemplo se supone que tiene un conjunto de datos denominado dataSet1.

    Dim customerRow() As Data.DataRow
    customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'")
    
    customerRow(0)("CompanyName") = "Updated Company Name"
    customerRow(0)("City") = "Seattle"
    
    DataRow[] customerRow = 
        dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'");
    
    customerRow[0]["CompanyName"] = "Updated Company Name";
    customerRow[0]["City"] = "Seattle";
    

Editar un registro de un objeto DataTable cuando conoce el índice de la fila que desea editar

Para actualizar registros existentes mediante los conjuntos de datos con tipo (índice de fila conocido)

  • Asigne un valor a una columna específica de un objeto DataRow.

    Los conjuntos de datos con tipo utilizan el enlace en tiempo de compilación, que expone los nombres de tabla y columna como propiedades en tiempo de diseño. Como resultado, se obtiene código que es más fácil de leer y escribir.

    En el ejemplo siguiente, se muestra cómo actualizar los datos de las columnas CompanyName y City del quinto registro de la tabla Customers del conjunto de datos. En este ejemplo se supone que ha generado un conjunto de datos con tipo denominado NorthwindDataSet y que tiene una instancia de este conjunto de datos con tipo denominado northwindDataSet1.

    NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name"
    NorthwindDataSet1.Customers(4).City = "Seattle"
    
    northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
    northwindDataSet1.Customers[4].City = "Seattle";
    

Para actualizar los registros existentes en conjuntos de datos sin tipo (índice de fila conocido)

  • Asigne un valor a una columna específica de un objeto DataRow.

    Los nombres de tabla y columna de los conjuntos de datos sin tipo no están disponibles en tiempo de diseño, por lo que el acceso a los mismos debe realizarse a través de sus respectivos índices.

    En el ejemplo siguiente se muestra cómo actualizar los datos de las dos primeras columnas del quinto registro de la primera tabla de dataSet1. En este ejemplo se supone que la primera tabla de dataSet1 corresponde a la tabla Customers de la base de datos Northwind y que las primeras dos columnas de esta tabla son CompanyName y City.

    DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name"
    DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
    
    dataSet1.Tables[0].Rows[4][0] = "Updated Company Name";
    dataSet1.Tables[0].Rows[4][1] = "Seattle";
    

    En el ejemplo siguiente, se muestra cómo actualizar los mismos datos del ejemplo anterior, pero los índices de las colecciones se reemplazan por los nombres de tabla y columna, que se pasan como cadenas. Todavía necesita conocer el índice de la fila que desea modificar.

    DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name"
    DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
    
    dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name";
    dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
    

Vea también

Conceptos

Editar DataTable

Agregar datos a DataTable

Eliminar DataRow

Enlazar controles de Windows Forms a datos en Visual Studio

Preparar la aplicación para recibir datos

Buscar datos en la aplicación

Enlazar controles a los datos en Visual Studio

Modificar datos en la aplicación

Validar datos

Guardar datos

Otros recursos

Conectarse a datos en Visual Studio