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

EndLoadData() public method

public EndLoadData ( ) : void
return void
        public void EndLoadData()
        {
            long logScopeId = DataCommonEventSource.Log.EnterScope("<ds.DataTable.EndLoadData|API> {0}", ObjectID);
            try
            {
                if (!_inDataLoad)
                {
                    return;
                }

                if (_loadIndex != null)
                {
                    _loadIndex.RemoveRef();
                }
                if (_loadIndexwithOriginalAdded != null)
                {
                    _loadIndexwithOriginalAdded.RemoveRef();
                }
                if (_loadIndexwithCurrentDeleted != null)
                {
                    _loadIndexwithCurrentDeleted.RemoveRef();
                }

                _loadIndex = null;
                _loadIndexwithOriginalAdded = null;
                _loadIndexwithCurrentDeleted = null;

                _inDataLoad = false;

                RestoreIndexEvents(false);

                if (DataSet != null)
                {
                    DataSet.EnforceConstraints = _savedEnforceConstraints;
                }
                else
                {
                    EnforceConstraints = true;
                }
            }
            finally
            {
                DataCommonEventSource.Log.ExitScope(logScopeId);
            }
        }

Usage Example

Ejemplo n.º 1
0
        protected void CopyData(DataTable source, DataTable destination)
        {
            var visbleCount = selectedField.Count(x => x.visible);

            destination.BeginLoadData();
            foreach (DataRow dr in source.Rows)
            {
                var newrow = destination.NewRow();

                foreach (var rf in selectedField)
                {
                    if (rf.visible)
                    {
                        newrow[rf.outputField] = dr[rf.outputField];
                    }
                }

                //Выставляем явно значения определенного типа для полей: "Сумма", "Доля рынка в %" и т.д.
                //(visbleCount * 2) - потому, что участвует код (первичный ключ) и строковое значение,
                //пример: PriceCode и PriceName.
                for (int i = (visbleCount * 2); i < source.Columns.Count; i++)
                {
                    if (!(dr[source.Columns[i].ColumnName] is DBNull) && destination.Columns.Contains(source.Columns[i].ColumnName))
                    {
                        newrow[source.Columns[i].ColumnName] = Convert.ChangeType(dr[source.Columns[i].ColumnName], destination.Columns[source.Columns[i].ColumnName].DataType);
                    }
                }

                destination.Rows.Add(newrow);
            }
            destination.EndLoadData();
        }
All Usage Examples Of System.Data.DataTable::EndLoadData
DataTable