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
- WebPartZoneBase.cs
- While.cs
- BinaryReader.cs
- MarkupCompiler.cs
- ProvidersHelper.cs
- UnsafeNativeMethods.cs
- PropertyMappingExceptionEventArgs.cs
- ConfigViewGenerator.cs
- TimeZoneNotFoundException.cs
- SecurityTokenException.cs
- FontEmbeddingManager.cs
- FixedLineResult.cs
- FieldReference.cs
- HtmlGenericControl.cs
- ClientSettingsStore.cs
- AssertFilter.cs
- XmlMtomWriter.cs
- UnknownMessageReceivedEventArgs.cs
- ButtonFlatAdapter.cs
- HelpEvent.cs
- GlyphInfoList.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- XmlAttributeAttribute.cs
- ClientUrlResolverWrapper.cs
- WpfKnownMember.cs
- PropertyEmitter.cs
- TextEncodedRawTextWriter.cs
- listitem.cs
- Matrix.cs
- PathFigureCollection.cs
- CallbackValidator.cs
- DataViewSetting.cs
- AnnotationResourceCollection.cs
- CLSCompliantAttribute.cs
- CellParagraph.cs
- DispatcherTimer.cs
- DirectoryRootQuery.cs
- DataObject.cs
- WrappingXamlSchemaContext.cs
- XmlDataSource.cs
- RelationshipNavigation.cs
- MenuCommand.cs
- RelatedEnd.cs
- HealthMonitoringSection.cs
- ElementHostAutomationPeer.cs
- Style.cs
- RequestCachingSection.cs
- InvalidWMPVersionException.cs
- TypedRowHandler.cs
- MethodMessage.cs
- SecureConversationServiceCredential.cs
- ReadContentAsBinaryHelper.cs
- SessionStateContainer.cs
- XmlException.cs
- TextTreeTextBlock.cs
- SocketPermission.cs
- precedingquery.cs
- SplitContainer.cs
- RowTypeElement.cs
- UnsafeNativeMethodsPenimc.cs
- PreviewKeyDownEventArgs.cs
- PermissionAttributes.cs
- WebPartTracker.cs
- CompilerInfo.cs
- PointUtil.cs
- FaultCallbackWrapper.cs
- TextServicesPropertyRanges.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- SqlDataSourceRefreshSchemaForm.cs
- SqlReferenceCollection.cs
- ControlPropertyNameConverter.cs
- SocketCache.cs
- PageBuildProvider.cs
- TemplateEditingFrame.cs
- AuthenticationException.cs
- TimeZone.cs
- JapaneseLunisolarCalendar.cs
- HideDisabledControlAdapter.cs
- DataTableExtensions.cs
- TextRenderingModeValidation.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- TdsEnums.cs
- WebPartConnectionsConnectVerb.cs
- XPathDocumentBuilder.cs
- ObjectConverter.cs
- AdjustableArrowCap.cs
- NonVisualControlAttribute.cs
- PersonalizationStateQuery.cs
- VarRemapper.cs
- handlecollector.cs
- HtmlAnchor.cs
- _ShellExpression.cs
- MenuItemAutomationPeer.cs
- RectangleHotSpot.cs
- CorrelationActionMessageFilter.cs
- SimpleHandlerFactory.cs
- CompiledQueryCacheKey.cs
- MimePart.cs
- SignatureToken.cs
- MILUtilities.cs