Code:
/ 4.0 / 4.0 / 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 ///. // 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
- NullReferenceException.cs
- IgnoreFlushAndCloseStream.cs
- PipelineModuleStepContainer.cs
- SoapTypeAttribute.cs
- ActivationServices.cs
- RuntimeWrappedException.cs
- EnglishPluralizationService.cs
- odbcmetadatacolumnnames.cs
- PenContexts.cs
- AsyncOperation.cs
- MessageHeaderT.cs
- MenuItemCollection.cs
- httpserverutility.cs
- Positioning.cs
- Page.cs
- KeyedQueue.cs
- coordinatorfactory.cs
- Wizard.cs
- ServiceRoute.cs
- EditModeSwitchButton.cs
- ScriptHandlerFactory.cs
- SmiConnection.cs
- NameSpaceExtractor.cs
- MsmqHostedTransportConfiguration.cs
- TcpServerChannel.cs
- DataBindingHandlerAttribute.cs
- UnsafeNativeMethods.cs
- FloaterBaseParagraph.cs
- SchemaEntity.cs
- ResourceManager.cs
- XMLSchema.cs
- XMLSyntaxException.cs
- SoapException.cs
- Point.cs
- LinqDataSourceHelper.cs
- DragStartedEventArgs.cs
- GradientBrush.cs
- XhtmlBasicPhoneCallAdapter.cs
- PeerNearMe.cs
- PointHitTestResult.cs
- complextypematerializer.cs
- ExceptionValidationRule.cs
- BinaryObjectInfo.cs
- GridViewRowCollection.cs
- ByeMessageCD1.cs
- SharedPersonalizationStateInfo.cs
- Dump.cs
- DynamicDiscoSearcher.cs
- DbModificationCommandTree.cs
- ToolboxComponentsCreatedEventArgs.cs
- X509Certificate2.cs
- RegexCompilationInfo.cs
- EmbeddedObject.cs
- QueryGeneratorBase.cs
- DataListCommandEventArgs.cs
- EntityDataSourceView.cs
- LongCountAggregationOperator.cs
- WebBrowserProgressChangedEventHandler.cs
- GenericUriParser.cs
- behaviorssection.cs
- ObjectListFieldCollection.cs
- MasterPageCodeDomTreeGenerator.cs
- DataGridParentRows.cs
- CmsInterop.cs
- InnerItemCollectionView.cs
- ReadOnlyCollectionBuilder.cs
- SynchronizationContext.cs
- StorageAssociationSetMapping.cs
- OutputCacheSection.cs
- SetterBase.cs
- LinearKeyFrames.cs
- CodeDirectiveCollection.cs
- QilStrConcat.cs
- ManifestResourceInfo.cs
- PrintDocument.cs
- FontDriver.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- SurrogateEncoder.cs
- SerialPinChanges.cs
- SvcFileManager.cs
- BaseTemplatedMobileComponentEditor.cs
- DataServiceBuildProvider.cs
- GraphicsContext.cs
- TransformationRules.cs
- Simplifier.cs
- PeerNameRecordCollection.cs
- NavigationPropertyEmitter.cs
- ExtenderControl.cs
- TypeForwardedToAttribute.cs
- ApplicationActivator.cs
- Renderer.cs
- ExpandSegmentCollection.cs
- UnionExpr.cs
- TreeNodeStyleCollection.cs
- CancellationTokenRegistration.cs
- XPathParser.cs
- Random.cs
- WeakKeyDictionary.cs
- ProtocolsSection.cs
- SmiContext.cs