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
- datacache.cs
- IList.cs
- TemplateParser.cs
- SqlAliaser.cs
- WebEvents.cs
- DataGridViewAutoSizeModeEventArgs.cs
- StreamReader.cs
- TrustManagerMoreInformation.cs
- KeyInstance.cs
- DesignerCategoryAttribute.cs
- filewebresponse.cs
- VisualStyleInformation.cs
- DataGridRelationshipRow.cs
- AppDomain.cs
- WindowsContainer.cs
- columnmapfactory.cs
- ScriptingSectionGroup.cs
- ProgressBarHighlightConverter.cs
- ProfileManager.cs
- NonSerializedAttribute.cs
- DataSvcMapFile.cs
- SqlNotificationRequest.cs
- NetTcpSectionData.cs
- ObjectFullSpanRewriter.cs
- ReadOnlyHierarchicalDataSource.cs
- _IPv6Address.cs
- StorageInfo.cs
- XmlWrappingReader.cs
- HealthMonitoringSection.cs
- DbConnectionHelper.cs
- MenuItemBinding.cs
- TableHeaderCell.cs
- GlobalizationAssembly.cs
- MobileControlsSectionHandler.cs
- ArcSegment.cs
- SynchronizationFilter.cs
- VisualTreeHelper.cs
- XMLDiffLoader.cs
- HttpUnhandledOperationInvoker.cs
- PageThemeBuildProvider.cs
- SafeCertificateStore.cs
- BindUriHelper.cs
- FontSourceCollection.cs
- CollectionViewSource.cs
- PropertyBuilder.cs
- XPathNavigator.cs
- Base64Encoder.cs
- ListItemsCollectionEditor.cs
- EncryptedKey.cs
- AndCondition.cs
- BitmapEncoder.cs
- MasterPageParser.cs
- XmlSchemaInferenceException.cs
- VisualBasicSettingsHandler.cs
- AdapterUtil.cs
- KeyFrames.cs
- EndpointFilterProvider.cs
- ResourceWriter.cs
- RectangleGeometry.cs
- OutputChannelBinder.cs
- ResourceDefaultValueAttribute.cs
- CFStream.cs
- Point3DAnimationBase.cs
- ExpressionBuilderContext.cs
- RawStylusSystemGestureInputReport.cs
- RegexGroupCollection.cs
- ChainOfDependencies.cs
- DataGridViewLayoutData.cs
- DecimalStorage.cs
- CapabilitiesPattern.cs
- PackageRelationshipCollection.cs
- ListControlConvertEventArgs.cs
- RectAnimationClockResource.cs
- ProofTokenCryptoHandle.cs
- DataGridViewTopLeftHeaderCell.cs
- StringSource.cs
- TypeSystem.cs
- RectangleGeometry.cs
- FixedElement.cs
- WhitespaceSignificantCollectionAttribute.cs
- EventMappingSettings.cs
- DataKeyArray.cs
- SafeCryptContextHandle.cs
- UpdateTracker.cs
- SearchForVirtualItemEventArgs.cs
- ManagementObjectSearcher.cs
- PeerTransportElement.cs
- SystemUnicastIPAddressInformation.cs
- OdbcDataAdapter.cs
- ServiceDocumentFormatter.cs
- TimerExtension.cs
- FtpWebRequest.cs
- GeneralTransform3DGroup.cs
- MatrixTransform3D.cs
- ConditionalAttribute.cs
- RecommendedAsConfigurableAttribute.cs
- LinqDataSourceStatusEventArgs.cs
- ResourceIDHelper.cs
- RsaElement.cs
- DockAndAnchorLayout.cs