Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / DataError.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.Sets the error message for the ///.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ExcCanonicalXml.cs
- WebServiceHostFactory.cs
- HwndStylusInputProvider.cs
- EdmMember.cs
- Animatable.cs
- EventLogPropertySelector.cs
- FileStream.cs
- DebugView.cs
- FixUp.cs
- InvalidPrinterException.cs
- DCSafeHandle.cs
- ReachDocumentPageSerializer.cs
- PasswordRecovery.cs
- ExtenderHelpers.cs
- Accessible.cs
- HandlerBase.cs
- LOSFormatter.cs
- Clock.cs
- XmlValidatingReader.cs
- DataContext.cs
- CodeNamespaceImportCollection.cs
- Subordinate.cs
- UInt16Storage.cs
- ListSourceHelper.cs
- OrderedHashRepartitionEnumerator.cs
- _ConnectionGroup.cs
- Propagator.JoinPropagator.cs
- RegexParser.cs
- LayoutDump.cs
- PasswordDeriveBytes.cs
- UnwrappedTypesXmlSerializerManager.cs
- SingleSelectRootGridEntry.cs
- FixedDocumentPaginator.cs
- Translator.cs
- WebControlsSection.cs
- CodeDirectoryCompiler.cs
- ReachVisualSerializer.cs
- SettingsPropertyCollection.cs
- XsdSchemaFileEditor.cs
- TemplatePropertyEntry.cs
- Int32AnimationUsingKeyFrames.cs
- _ListenerResponseStream.cs
- XmlSchemaExporter.cs
- InternalsVisibleToAttribute.cs
- TreeViewImageIndexConverter.cs
- DocumentPropertiesDialog.cs
- FormViewCommandEventArgs.cs
- CroppedBitmap.cs
- IndexedEnumerable.cs
- MobileControlDesigner.cs
- filewebresponse.cs
- Funcletizer.cs
- DataGridViewCellEventArgs.cs
- SchemaDeclBase.cs
- PathTooLongException.cs
- CharacterBufferReference.cs
- TreeIterators.cs
- UIElement3DAutomationPeer.cs
- PeerDuplexChannel.cs
- StreamUpdate.cs
- SessionStateContainer.cs
- ResizeBehavior.cs
- FixedPageAutomationPeer.cs
- UserPersonalizationStateInfo.cs
- GPPOINT.cs
- FormClosingEvent.cs
- DataViewManager.cs
- IndicCharClassifier.cs
- MD5.cs
- CodeAttributeDeclaration.cs
- DoubleStorage.cs
- WsdlEndpointConversionContext.cs
- CompareInfo.cs
- ChangePasswordDesigner.cs
- externdll.cs
- BitmapEffectvisualstate.cs
- TransformedBitmap.cs
- PartialTrustHelpers.cs
- AutomationElementCollection.cs
- SafeNativeMemoryHandle.cs
- DataGridView.cs
- FileUpload.cs
- DataProtection.cs
- SapiRecoContext.cs
- IndicFontClient.cs
- GridProviderWrapper.cs
- SqlDataSourceCommandEventArgs.cs
- ContainerParagraph.cs
- WebColorConverter.cs
- HierarchicalDataBoundControlAdapter.cs
- EventsTab.cs
- MethodAccessException.cs
- ControlSerializer.cs
- PagedDataSource.cs
- BulletDecorator.cs
- SRGSCompiler.cs
- XmlSecureResolver.cs
- WmlTextBoxAdapter.cs
- BaseParser.cs
- WMIInterop.cs