Finding a Row

The strongly typed DataSet has a FindBy( ) method to locate a row in a DataTable based on the primary key. The method accepts one argument for each of the columns that make up the primary key. The method has named arguments, making it easier to work with than similar untyped DataSet code. Additionally, the arguments are typed, allowing mismatch errors to be caught at compilation time rather than at runtime. The following example demonstrates using the strongly typed DataSet FindBy( ) method and also shows comparable code using an untyped DataSet.

// strongly typed DataSet called Northwind containing the Orders table

Northwind.Order_DetailsDataTable table =

  new Northwind.Order_DetailsDataTable();



// ... code to add new rows to, or Fill the Orders table



// locate the row based on its primary key value

Northwind.Order_DetailsRow orderDetailsRow

    = table.FindByOrderIDProductID(10248, 11);

if(orderDetailsRow != null)

{

    // ... code to process the row

}

This example shows comparable code using an untyped DataSet:

// untyped DataSet containing the Orders table

DataSet ds = new DataSet("Northwind");

DataTable ordersTable = ds.Tables.Add("Orders");



// ... code to define or retrieve the schema for the DataTable

// ... code to add new rows to, or Fill the Orders table



// locate the row based on its primary key value

DataRow orderDetailsRow  =  ordersTable.Find(new Object[] {10248, 11});

if(orderDetailsRow != null)

{

    // ... code to process the row

}

Get ADO.NET in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.