System.Data.DataTable.EvaluateExpressions C# (CSharp) Method

EvaluateExpressions() private method

private EvaluateExpressions ( ) : void
return void
        internal void EvaluateExpressions()
        {
            // evaluates all expressions for all rows in table
            // this improves performance by only computing expressions when they are present
            // and iterating over the rows instead of computing their position multiple times
            if ((null != _dependentColumns) && (0 < _dependentColumns.Count))
            {
                foreach (DataRow row in Rows)
                {
                    // only evaluate original values if different from current.
                    if (row._oldRecord != -1 && row._oldRecord != row._newRecord)
                    {
                        EvaluateDependentExpressions(_dependentColumns, row, DataRowVersion.Original, null);
                    }
                    if (row._newRecord != -1)
                    {
                        EvaluateDependentExpressions(_dependentColumns, row, DataRowVersion.Current, null);
                    }
                    if (row._tempRecord != -1)
                    {
                        EvaluateDependentExpressions(_dependentColumns, row, DataRowVersion.Proposed, null);
                    }
                }
            }
        }

Same methods

DataTable::EvaluateExpressions ( DataColumn column ) : void
DataTable::EvaluateExpressions ( DataRow row, DataRowAction action, List cachedRows ) : void

Usage Example

        internal void MergeTable(DataTable src)
        {
            bool enforceConstraints = false;

            if (!this.isStandAlonetable)
            {
                if (src.DataSet == this.dataSet)
                {
                    return;
                }
                enforceConstraints = this.dataSet.EnforceConstraints;
                this.dataSet.EnforceConstraints = false;
            }
            else
            {
                if (src == this.dataTable)
                {
                    return;
                }
                this.dataTable.SuspendEnforceConstraints = true;
            }
            if (this.dataSet != null)
            {
                if ((src.DataSet == null) || (src.DataSet.namespaceURI != this.dataSet.namespaceURI))
                {
                    this._IgnoreNSforTableLookup = true;
                }
            }
            else if (((this.dataTable.DataSet == null) || (src.DataSet == null)) || (src.DataSet.namespaceURI != this.dataTable.DataSet.namespaceURI))
            {
                this._IgnoreNSforTableLookup = true;
            }
            this.MergeTableData(src);
            DataTable dataTable = this.dataTable;

            if ((dataTable == null) && (this.dataSet != null))
            {
                if (this._IgnoreNSforTableLookup)
                {
                    dataTable = this.dataSet.Tables[src.TableName];
                }
                else
                {
                    dataTable = this.dataSet.Tables[src.TableName, src.Namespace];
                }
            }
            if (dataTable != null)
            {
                dataTable.EvaluateExpressions();
            }
            if (!this.isStandAlonetable)
            {
                this.dataSet.EnforceConstraints = enforceConstraints;
            }
            else
            {
                this.dataTable.SuspendEnforceConstraints = false;
                try
                {
                    if (this.dataTable.EnforceConstraints)
                    {
                        this.dataTable.EnableConstraints();
                    }
                }
                catch (ConstraintException)
                {
                    if (this.dataTable.DataSet != null)
                    {
                        this.dataTable.DataSet.EnforceConstraints = false;
                    }
                    throw;
                }
            }
        }
All Usage Examples Of System.Data.DataTable::EvaluateExpressions
DataTable