System.Data.DataColumn.SetOrdinalInternal C# (CSharp) Method

SetOrdinalInternal() private method

private SetOrdinalInternal ( int ordinal ) : void
ordinal int
return void
        internal void SetOrdinalInternal(int ordinal)
        {
            if (_ordinal != ordinal)
            {
                if (Unique && _ordinal != -1 && ordinal == -1)
                {
                    UniqueConstraint key = _table.Constraints.FindKeyConstraint(this);
                    if (key != null)
                    {
                        _table.Constraints.Remove(key);
                    }
                }

                if ((null != _sortIndex) && (-1 == ordinal))
                {
                    Debug.Assert(2 <= _sortIndex.RefCount, "bad sortIndex refcount");
                    _sortIndex.RemoveRef();
                    _sortIndex.RemoveRef(); // second should remove it from index collection
                    _sortIndex = null;
                }

                int originalOrdinal = _ordinal;
                _ordinal = ordinal;
                if (originalOrdinal == -1 && _ordinal != -1)
                {
                    if (Unique)
                    {
                        UniqueConstraint key = new UniqueConstraint(this);
                        _table.Constraints.Add(key);
                    }
                }
            }
        }

Usage Example

        private void ArrayRemove(DataColumn column)
        {
            column.SetOrdinalInternal(-1);
            this._list.Remove(column);
            int count = this._list.Count;

            for (int i = 0; i < count; i++)
            {
                ((DataColumn)this._list[i]).SetOrdinalInternal(i);
            }
            if (column.ImplementsIChangeTracking)
            {
                this.RemoveColumnsImplementingIChangeTrackingList(column);
            }
        }
All Usage Examples Of System.Data.DataColumn::SetOrdinalInternal