Code:
/ DotNET / DotNET / 8.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
- Grid.cs
- DBAsyncResult.cs
- ToolStripDropTargetManager.cs
- WebPartEditorOkVerb.cs
- XamlInt32CollectionSerializer.cs
- ImageMap.cs
- PatternMatcher.cs
- ErrorTolerantObjectWriter.cs
- SecurityTokenParametersEnumerable.cs
- SafePointer.cs
- Executor.cs
- DecoderFallback.cs
- Decimal.cs
- DrawingContextDrawingContextWalker.cs
- MsmqIntegrationChannelListener.cs
- loginstatus.cs
- LocatorGroup.cs
- SqlParameterCollection.cs
- MenuItemCollectionEditorDialog.cs
- XmlConvert.cs
- Bezier.cs
- CodeExporter.cs
- AspNetCacheProfileAttribute.cs
- GroupBox.cs
- CompilerGeneratedAttribute.cs
- CompositeDataBoundControl.cs
- XmlEntity.cs
- ComponentResourceKeyConverter.cs
- SynchronizingStream.cs
- SystemParameters.cs
- TextTreeObjectNode.cs
- OrderedEnumerableRowCollection.cs
- XmlName.cs
- FontStyles.cs
- CookieProtection.cs
- GridViewEditEventArgs.cs
- Substitution.cs
- QueryCacheManager.cs
- CommandCollectionEditor.cs
- ReaderWriterLockSlim.cs
- ToolTipService.cs
- NumericUpDown.cs
- RequestCachingSection.cs
- Style.cs
- IIS7UserPrincipal.cs
- PtsContext.cs
- FileClassifier.cs
- Win32KeyboardDevice.cs
- Utils.cs
- GridViewActionList.cs
- InputMethodStateTypeInfo.cs
- NamedPermissionSet.cs
- ItemDragEvent.cs
- MessageOperationFormatter.cs
- XamlWriter.cs
- UTF8Encoding.cs
- StopStoryboard.cs
- ThreadAbortException.cs
- TypeName.cs
- OneOfElement.cs
- GiveFeedbackEventArgs.cs
- DropSource.cs
- ListControlBuilder.cs
- MarkupProperty.cs
- DrawingGroup.cs
- Enlistment.cs
- ZipIORawDataFileBlock.cs
- EntityDataSourceConfigureObjectContext.cs
- ClassDataContract.cs
- WS2007HttpBinding.cs
- IssuanceLicense.cs
- HttpApplicationFactory.cs
- DocumentPageViewAutomationPeer.cs
- DefaultEventAttribute.cs
- BamlResourceSerializer.cs
- QuaternionAnimationUsingKeyFrames.cs
- TemplatedAdorner.cs
- SmiEventStream.cs
- ContextStaticAttribute.cs
- CodePageUtils.cs
- LabelEditEvent.cs
- OutOfProcStateClientManager.cs
- TextBoxBase.cs
- DataServiceRequestException.cs
- safemediahandle.cs
- DataGridView.cs
- PhonemeEventArgs.cs
- LongValidator.cs
- SharedPerformanceCounter.cs
- RelationshipDetailsRow.cs
- CssTextWriter.cs
- OracleBoolean.cs
- BrowserCapabilitiesCodeGenerator.cs
- ContentFilePart.cs
- XPathArrayIterator.cs
- HashCodeCombiner.cs
- TableLayoutSettings.cs
- DataColumnMapping.cs
- OleDbCommand.cs
- XmlTextReaderImplHelpers.cs