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.