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
- BinaryObjectWriter.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- BrowsableAttribute.cs
- DataKeyArray.cs
- GridEntry.cs
- GroupBoxDesigner.cs
- ProxyWebPartConnectionCollection.cs
- SafeCertificateContext.cs
- CompletionProxy.cs
- XmlSchemaAttributeGroupRef.cs
- CodeObjectCreateExpression.cs
- XamlSerializerUtil.cs
- Label.cs
- SafeHandles.cs
- ModuleConfigurationInfo.cs
- WindowsTitleBar.cs
- DataGridPageChangedEventArgs.cs
- TransactedBatchContext.cs
- ConstructorBuilder.cs
- DecimalConverter.cs
- ChangePassword.cs
- DataServiceHost.cs
- GlobalEventManager.cs
- AssemblyAssociatedContentFileAttribute.cs
- SequenceQuery.cs
- SetStateDesigner.cs
- ZipFileInfo.cs
- Margins.cs
- XmlReaderSettings.cs
- MdiWindowListStrip.cs
- LowerCaseStringConverter.cs
- WindowsUpDown.cs
- TreeNode.cs
- basevalidator.cs
- ListItemCollection.cs
- StringCollectionEditor.cs
- StorageRoot.cs
- ModelItemImpl.cs
- ApplicationHost.cs
- RegexCaptureCollection.cs
- securitymgrsite.cs
- sqlstateclientmanager.cs
- ToolStripRenderEventArgs.cs
- RefType.cs
- XmlCharType.cs
- DynamicDocumentPaginator.cs
- UrlUtility.cs
- TemplateLookupAction.cs
- ArgumentOutOfRangeException.cs
- BrowserInteropHelper.cs
- StaticSiteMapProvider.cs
- SettingsPropertyWrongTypeException.cs
- PictureBox.cs
- Rotation3DKeyFrameCollection.cs
- Pair.cs
- DbgUtil.cs
- RequiredAttributeAttribute.cs
- DataKey.cs
- DeferredRunTextReference.cs
- FragmentNavigationEventArgs.cs
- ProfileServiceManager.cs
- Registry.cs
- XPathAncestorIterator.cs
- SequentialWorkflowHeaderFooter.cs
- cache.cs
- QueryExecutionOption.cs
- AddInController.cs
- XmlNodeComparer.cs
- DataGridViewCellStyleEditor.cs
- SHA384Managed.cs
- PerformanceCounterPermission.cs
- UrlPropertyAttribute.cs
- NotConverter.cs
- EntitySetBaseCollection.cs
- ExpandButtonVisibilityConverter.cs
- SigningProgress.cs
- UrlMapping.cs
- ServiceEndpointElement.cs
- AccessViolationException.cs
- DefaultHttpHandler.cs
- mansign.cs
- PixelFormatConverter.cs
- BaseProcessProtocolHandler.cs
- ToolStripItemTextRenderEventArgs.cs
- IgnoreFileBuildProvider.cs
- ReferenceEqualityComparer.cs
- SQLInt32.cs
- Compiler.cs
- GeneralTransform.cs
- SrgsToken.cs
- GradientStop.cs
- MissingManifestResourceException.cs
- ExtensibleClassFactory.cs
- DeriveBytes.cs
- OpacityConverter.cs
- BufferModeSettings.cs
- SqlBinder.cs
- ExpressionQuoter.cs
- CodeExporter.cs
- _SafeNetHandles.cs