Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / DataError.cs / 1305376 / DataError.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; using System.Diagnostics; ////// internal sealed class DataError { private string rowError = String.Empty; // column-level errors private int count; private ColumnError[] errorList; internal const int initialCapacity = 1; internal DataError() { } internal DataError(string rowError) { SetText(rowError); } internal string Text { get { return rowError; } set { SetText(value); } } internal bool HasErrors { get { return(rowError.Length != 0 || count != 0); } } // // this method resets the error to the new value. // internal void SetColumnError(DataColumn column, string error) { Debug.Assert(column != null, "Invalid (null) argument"); Debug.Assert(column.Table != null, "Invalid (loose) column"); if (error == null || error.Length == 0) { // remove error from the collection Clear(column); } else { if (errorList == null) { errorList = new ColumnError[initialCapacity]; } int i = IndexOf(column); errorList[i].column = column; errorList[i].error = error; column.errors++; if (i == count) count++; } } internal string GetColumnError(DataColumn column) { for (int i = 0; i < count; i++) { if (errorList[i].column == column) { return errorList[i].error; } } return String.Empty; } internal void Clear(DataColumn column) { if (count == 0) return; for (int i = 0; i < count; i++) { if (errorList[i].column == column) { System.Array.Copy(errorList, i+1, errorList, i, count-i-1); count--; column.errors--; Debug.Assert(column.errors >= 0, "missing error counts"); } } } internal void Clear() { for (int i = 0; i < count; i++) { errorList[i].column.errors--; Debug.Assert(errorList[i].column.errors >= 0, "missing error counts"); } count = 0; rowError = String.Empty; } internal DataColumn[] GetColumnsInError() { DataColumn[] cols = new DataColumn[count]; for (int i = 0; i < count; i++) { cols[i] = errorList[i].column; } return cols; } ///Represents an custom error that can be associated with a ///. /// private void SetText(string errorText) { if (null == errorText) { errorText = String.Empty; } rowError = errorText; } internal int IndexOf (DataColumn column) { // try to find the column for (int i = 0; i < count; i++) { if (errorList[i].column == column) { return i; } } if (count >= errorList.Length) { int newCapacity = Math.Min(count*2, column.Table.Columns.Count); ColumnError[] biggerList = new ColumnError[newCapacity]; System.Array.Copy(errorList, 0, biggerList, 0, count); errorList = biggerList; } return count; } internal struct ColumnError { internal DataColumn column; internal string error; }; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Sets the error message for the ///.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- remotingproxy.cs
- MarkupCompilePass2.cs
- SerializationInfoEnumerator.cs
- DBNull.cs
- StorageEntitySetMapping.cs
- METAHEADER.cs
- PageStatePersister.cs
- SortAction.cs
- _OverlappedAsyncResult.cs
- _NegoStream.cs
- AsymmetricSignatureFormatter.cs
- HighlightComponent.cs
- RightsManagementPermission.cs
- List.cs
- HwndHost.cs
- CollectionViewSource.cs
- RelationshipFixer.cs
- TreeBuilder.cs
- RegularExpressionValidator.cs
- RelativeSource.cs
- ToolStripSplitStackLayout.cs
- SessionEndedEventArgs.cs
- FrameSecurityDescriptor.cs
- JsonReaderWriterFactory.cs
- DesignerMetadata.cs
- DataGridViewRowsRemovedEventArgs.cs
- ContainerFilterService.cs
- CompositeControl.cs
- DataSourceUtil.cs
- ExtensionFile.cs
- SynchronizedPool.cs
- CacheModeConverter.cs
- DtdParser.cs
- CfgParser.cs
- ImageAnimator.cs
- TextWriterEngine.cs
- DataStreams.cs
- FixedDocumentPaginator.cs
- ExpressionEditorSheet.cs
- SudsParser.cs
- WebEventCodes.cs
- TextTreeRootNode.cs
- ExtenderProvidedPropertyAttribute.cs
- WmpBitmapDecoder.cs
- HtmlTableCellCollection.cs
- Selection.cs
- TokenizerHelper.cs
- CursorConverter.cs
- SiteOfOriginPart.cs
- IgnoreDeviceFilterElementCollection.cs
- Variant.cs
- VectorConverter.cs
- ValidationPropertyAttribute.cs
- XamlClipboardData.cs
- ItemsPresenter.cs
- MultiByteCodec.cs
- DesignerAttribute.cs
- WebPartConnectionsConfigureVerb.cs
- PlacementWorkspace.cs
- DatagridviewDisplayedBandsData.cs
- HttpCacheVary.cs
- HierarchicalDataSourceDesigner.cs
- HelpProvider.cs
- PassportIdentity.cs
- ListSortDescription.cs
- BamlBinaryReader.cs
- WmlListAdapter.cs
- LocationFactory.cs
- EventManager.cs
- recordstatescratchpad.cs
- LogArchiveSnapshot.cs
- EncryptedData.cs
- AttributeEmitter.cs
- PasswordRecovery.cs
- CheckoutException.cs
- ObjectNavigationPropertyMapping.cs
- AnonymousIdentificationSection.cs
- ApplicationFileCodeDomTreeGenerator.cs
- DataColumnChangeEvent.cs
- LocationUpdates.cs
- Wizard.cs
- EasingKeyFrames.cs
- MultiBindingExpression.cs
- IResourceProvider.cs
- Hex.cs
- CacheEntry.cs
- MultiplexingFormatMapping.cs
- IfAction.cs
- XmlSerializerNamespaces.cs
- TrackBarRenderer.cs
- Interlocked.cs
- WindowsGrip.cs
- OleDbSchemaGuid.cs
- HttpCapabilitiesSectionHandler.cs
- ListViewGroup.cs
- CodeBlockBuilder.cs
- CounterSet.cs
- SqlComparer.cs
- SafeRightsManagementSessionHandle.cs
- OdbcConnection.cs