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.LoadSets up the sample by creating a
DataTablecontaining 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 ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access