Data Access in Client and Middle-Tier Programming 
How to: Locate a Specific Row in a DataTable 

Most applications that consume data need to access specific records that satisfy some kind of criteria. In order to find a particular row in a dataset, you can invoke the Find method of the DataRowCollection object. If the primary key exists, then a DataRow object is returned. If the primary key cannot be found, then a null value is returned.

Finding a Row with a Primary Key Value

To find a row in a typed dataset with a primary key value

  • Call the strongly typed FindBy method that uses the table's primary key to locate a row.

    In the following example, the CustomerID column is the primary key of the Customers table, so the generated FindBy method is FindByCustomerID. The example shows how to assign a specific DataRow to a variable using the generated FindBy method.

    Visual Basic
    Dim customersRow As NorthwindDataSet.CustomersRow
    customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI")
    C#
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.Customers.FindByCustomerID("ALFKI");
    J#
    NorthwindDataSet.CustomersRow customersRow = 
        northwindDataSet1.get_Customers().FindByCustomerID("ALFKI");

To find a row in an untyped dataset with a primary key value

  • Call the Find method of a DataRowCollection collection, passing the primary key as a parameter.

    The following example shows how to declare a new row called foundRow and assign it the return value of the Find method. If the primary key is found, the contents of column index 1 are displayed in a message box.

    Visual Basic
    Dim s As String = "primaryKeyValue"
    Dim foundRow As DataRow = DataSet1.Tables("AnyTable").Rows.Find(s)
    
    If foundRow IsNot Nothing Then
        MsgBox(foundRow(1).ToString())
    Else
        MsgBox("A row with the primary key of " & s & " could not be found")
    End If
    C#
    string s = "primaryKeyValue";
    DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s);
    
    if (foundRow != null) 
    {
        MessageBox.Show(foundRow[1].ToString());
    }
    else
    {
        MessageBox.Show("A row with the primary key of " + s + " could not be found");
    }
    J#
    String s = "primaryKeyValue";
    DataRow foundRow = dataSet1.get_Tables().get_Item("AnyTable").get_Rows().Find(s);
    
    if (foundRow != null)
    {
        MessageBox.Show(foundRow.get_Item(1).toString());
    }
    else
    {
        MessageBox.Show("A row with he primary key of " + s + " could not be found.");
    }

Finding Rows by Column Values

To find rows based on the values in any column

  • Data tables are created with a Select method that returns an array of DataRows based on the expression passed to the Select method. For more information on creating valid expressions, see the "Expression Syntax" section of the page about the Expression property.

    The following example shows how to use the Select method of the DataTable to locate specific rows.

    Visual Basic
    Dim foundRows() As Data.DataRow
    foundRows = DataSet1.Tables("Customers").Select("CompanyName Like 'A%'")
    C#
    DataRow[] foundRows;
    foundRows = dataSet1.Tables["Customers"].Select("CompanyName Like 'A%'");
    J#
    DataRow[] foundRows;
    foundRows = dataSet1.get_Tables().get_Item("Customers").Select("CompanyName Like 'A%'");

See Also

Tags :


Community Content

Thomas Lee
Add New Row in Datatable

You can assign values to data table directly.

Dim newrow As DataRow = MyDataSet.dtblTo.NewRow
newrow("row1") = cmbEditDept.SelectedItem.Text.Trim
newrow("row2") = cmbEditDept.SelectedValue
MyDataSet.dtblTo.Rows.Add(newrow)
MyDataSet.dtblTo.AcceptChanges()


Tthis will directly save the data in datatable in a new row.

Tags : add row datatable

Page view tracker