3.2. Using Expression Columns to Display Calculated Values

Problem

You need to display a calculated value for each row in a DataTable and to filter and sort the table on this value.

Solution

Add an expression column to the table and display it. Sort and filter on the expression column from the default DataView for the table.

The sample code contains two event handlers:

Form.Load

Sets up the sample by creating a DataTable containing the Order Details table from the Northwind sample database. An expression column calculating the extended price for each detail line is created and added to the table. Finally, the default view for the table is bound to the data grid on the form.

Apply Button.Click

Applies the filter and sort order entered by the user to the Extended Price expression column in the data view.

The C# code is shown in Example 3-2.

Example 3-2. File: ExpressionColumnForm.cs

// Namespaces, variables, and constants using System; using System.Configuration; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; // . . . private void ExpressionColumnForm_Load(object sender, System.EventArgs e) { // Define the table and fill it with data. DataTable dt = new DataTable("OrderDetails"); String selectText = "SELECT * FROM [Order Details]"; SqlDataAdapter da = new SqlDataAdapter(selectText, ConfigurationSettings.AppSettings["Sql_ConnectString"]); da.Fill(dt); // Add an expression column to the table. dt.Columns.Add(new DataColumn("ExtendedPrice", typeof(Decimal), "(Quantity ...

Get ADO.NET Cookbook 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.