Code:
/ 4.0 / 4.0 / untmp / 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 ///.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Stack.cs
- ReversePositionQuery.cs
- ForceCopyBuildProvider.cs
- XmlIterators.cs
- SemanticAnalyzer.cs
- OutOfMemoryException.cs
- Accessible.cs
- OptimalBreakSession.cs
- ProfilePropertySettings.cs
- Int32Rect.cs
- XamlInt32CollectionSerializer.cs
- CodeGenHelper.cs
- ColumnResizeAdorner.cs
- HtmlSelect.cs
- DispatchChannelSink.cs
- EmptyControlCollection.cs
- DrawingContextDrawingContextWalker.cs
- StandardOleMarshalObject.cs
- DateTimeFormatInfo.cs
- ControlValuePropertyAttribute.cs
- BufferedStream.cs
- BitmapEffectInput.cs
- HttpProxyCredentialType.cs
- XsdSchemaFileEditor.cs
- DataIdProcessor.cs
- Int16AnimationUsingKeyFrames.cs
- Invariant.cs
- ToolStripItemTextRenderEventArgs.cs
- GatewayDefinition.cs
- ProcessStartInfo.cs
- Geometry3D.cs
- WaveHeader.cs
- BindingSourceDesigner.cs
- PreservationFileReader.cs
- ResourceReferenceKeyNotFoundException.cs
- StateRuntime.cs
- ListSourceHelper.cs
- ConditionCollection.cs
- MailSettingsSection.cs
- Storyboard.cs
- ButtonField.cs
- ExecutedRoutedEventArgs.cs
- MetabaseServerConfig.cs
- MonitorWrapper.cs
- Certificate.cs
- XpsResourceDictionary.cs
- ChameleonKey.cs
- XmlSchemaComplexContentExtension.cs
- DesignTimeSiteMapProvider.cs
- ListViewTableCell.cs
- InfoCardTrace.cs
- Reference.cs
- FormatterServices.cs
- BrowserCapabilitiesFactoryBase.cs
- CryptoProvider.cs
- TypeGeneratedEventArgs.cs
- cookie.cs
- MessageCredentialType.cs
- StringBuilder.cs
- ListBoxItemWrapperAutomationPeer.cs
- ZipIOExtraFieldPaddingElement.cs
- ComponentConverter.cs
- ViewManager.cs
- RegionIterator.cs
- ChtmlPageAdapter.cs
- SqlTrackingService.cs
- Visual3D.cs
- InvokeMethodActivity.cs
- TypeInformation.cs
- TempFiles.cs
- MessageEnumerator.cs
- MiniLockedBorderGlyph.cs
- Misc.cs
- UserControl.cs
- QilLoop.cs
- BufferedOutputStream.cs
- DataErrorValidationRule.cs
- TranslateTransform3D.cs
- ReflectPropertyDescriptor.cs
- HtmlInputRadioButton.cs
- SoapException.cs
- Emitter.cs
- OracleCommandSet.cs
- XsdBuilder.cs
- ClientSession.cs
- SubMenuStyleCollectionEditor.cs
- XmlAnyElementAttributes.cs
- ListViewHitTestInfo.cs
- ValidationRule.cs
- ResourcePool.cs
- Icon.cs
- PropertyTabChangedEvent.cs
- CriticalFinalizerObject.cs
- FormsIdentity.cs
- ScaleTransform.cs
- DbDataSourceEnumerator.cs
- CodeTypeParameter.cs
- CellIdBoolean.cs
- TriggerAction.cs
- ConfigXmlText.cs