O'Reilly logo

ADO.NET Cookbook by Bill Hamilton

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

7.15. Adding Search Capabilities to Windows Forms

Problem

You need to use a search criteria specified by a user to locate a record displayed in a DataGrid without executing a query against the database.

Solution

Use the Find( ) method of the DataView with a sort key value to locate a record displayed in a DataGrid and reposition the row in the DataGrid.

The sample code contains two event handlers:

Form.Load

Sets up the sample by creating a DataTable and filling it with the Customers table from the Northwind sample database. A DataView is created based on the default view of the Customers DataTable, its sort key is set to the CustomerID column, and it is bound to the data grid on the form. Finally, a CurrencyManager is created from the DataView.

Go Button.Click

Uses the Find( ) method of the DataView to locate a record with the CustomerID specified by the user. If the CustomerID is found, the CurrencyManager created in the Form.Load event handler is used to select the matching record in the data grid.

The C# code is shown in Example 7-31.

Example 7-31. File: SearchDataGridForm.cs

// Namespaces, variables, and constants using System; using System.Configuration; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; private DataView dv; private CurrencyManager cm; // . . . private void SearchDataGridForm_Load(object sender, System.EventArgs e) { // Create the DataAdapter and load the Customers data in a table. String sqlText = "SELECT * FROM Customers"; SqlDataAdapter da ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required