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
- FileDialogPermission.cs
- CustomAttributeFormatException.cs
- WorkflowOperationErrorHandler.cs
- ProjectionPlanCompiler.cs
- RowUpdatingEventArgs.cs
- SqlExpander.cs
- InvalidComObjectException.cs
- DbConnectionPoolOptions.cs
- SqlRewriteScalarSubqueries.cs
- Vector3DValueSerializer.cs
- BitmapEffectDrawingContextWalker.cs
- CodeObject.cs
- BindingNavigator.cs
- Cursors.cs
- PageThemeBuildProvider.cs
- AtlasWeb.Designer.cs
- SafeArchiveContext.cs
- RadioButtonFlatAdapter.cs
- PropertyFilterAttribute.cs
- DataGridViewRowCollection.cs
- PageOrientation.cs
- ObjectTag.cs
- DeleteMemberBinder.cs
- TriggerCollection.cs
- AtomParser.cs
- NavigationProperty.cs
- ComponentCache.cs
- TextShapeableCharacters.cs
- ObjectContextServiceProvider.cs
- WindowsIdentity.cs
- CollectionView.cs
- EncoderNLS.cs
- WebSysDescriptionAttribute.cs
- DateTimeOffsetStorage.cs
- PropertyManager.cs
- bidPrivateBase.cs
- ResourceIDHelper.cs
- ScriptReference.cs
- PassportPrincipal.cs
- LinkConverter.cs
- CodeFieldReferenceExpression.cs
- Misc.cs
- HttpCachePolicyWrapper.cs
- ColorPalette.cs
- WSTrust.cs
- MutableAssemblyCacheEntry.cs
- TaskFileService.cs
- X509CertificateRecipientServiceCredential.cs
- UInt32.cs
- CompilerParameters.cs
- Crypto.cs
- SamlAssertion.cs
- ExternalCalls.cs
- StylusCollection.cs
- DataGridViewBindingCompleteEventArgs.cs
- EntitySqlQueryCacheKey.cs
- TextTreeUndoUnit.cs
- IndexObject.cs
- BoundColumn.cs
- WebAdminConfigurationHelper.cs
- Compensate.cs
- FrameworkTemplate.cs
- CacheEntry.cs
- PackageProperties.cs
- LongValidatorAttribute.cs
- WorkflowApplicationEventArgs.cs
- Rectangle.cs
- ThousandthOfEmRealPoints.cs
- CellParaClient.cs
- DbgCompiler.cs
- TypeSystem.cs
- EventLogPermissionAttribute.cs
- HtmlInputReset.cs
- FixedSchema.cs
- Vector3DValueSerializer.cs
- Privilege.cs
- MaskInputRejectedEventArgs.cs
- XmlSchemaSet.cs
- DefaultTextStore.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- QilNode.cs
- NotCondition.cs
- ConfigurationStrings.cs
- DataFormats.cs
- ItemCollection.cs
- UserPreferenceChangedEventArgs.cs
- Control.cs
- XmlTextReaderImplHelpers.cs
- SiteOfOriginPart.cs
- WindowsAltTab.cs
- ServiceHost.cs
- SerializerProvider.cs
- compensatingcollection.cs
- PolicyFactory.cs
- FormsIdentity.cs
- UInt64Converter.cs
- ResolvedKeyFrameEntry.cs
- HttpClientCertificate.cs
- CmsInterop.cs
- BoundField.cs