如果我们在Create一个DataTable时需要创建这样一列,它的结果是根据一定的表达式自动生成的,那么我们可以使用DataColumn的Express性质来完成这样的任务.

     假设我们要完成下面的逻辑:

    If ColumnA - ColumnB > 100, ColumnC = “Yes“, else ColumnC = “No“

则创建DataTable的代码如下:

DataTable and DataColumn Expressions in ADO.NET - Calculated Columns// Create the DataTable
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
DataTable dt = new DataTable("Expressions");
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
// Create ColumnA and ColumnB
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
DataColumn columnA =        new DataColumn("columnA"typeof(int));
DataTable and DataColumn Expressions in ADO.NET - Calculated ColumnsDataColumn columnB 
=        new DataColumn("columnB"typeof(int));
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
// Create ColumnC
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
DataColumn columnC =        new DataColumn("columnC"typeof(string),
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns        
"IIF(columnA - columnB > 100,'Yes','No')");
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
DataTable and DataColumn Expressions in ADO.NET - Calculated Columns
// Add Columns to DataTable


大家可以看到,这里面用到了IIF这样的函数,它的语法如下:

IIF(expr, truepart, falsepart)

expr -- 表达式

truepart -- 表达式成立时列的值

falsepart -- 表达式不成立时列的值


原文: http://davidhayden.com/blog/dave/archive/2006/07/09/DataColumnExpressions.aspx
    

相关文章: