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
- OperationCanceledException.cs
- objectquery_tresulttype.cs
- WebRequestModulesSection.cs
- CookieHandler.cs
- XmlSchemaValidationException.cs
- TextBoxAutomationPeer.cs
- RadialGradientBrush.cs
- UrlMappingCollection.cs
- InkCanvasSelectionAdorner.cs
- UpdatePanelTriggerCollection.cs
- PasswordRecoveryDesigner.cs
- DataColumn.cs
- Collection.cs
- ProgressiveCrcCalculatingStream.cs
- LinqDataView.cs
- MethodBody.cs
- ProjectionPruner.cs
- PageDeviceFont.cs
- GroupByExpressionRewriter.cs
- SQLDecimalStorage.cs
- IsolatedStorageFile.cs
- LoaderAllocator.cs
- MimeTypePropertyAttribute.cs
- LogAppendAsyncResult.cs
- ConfigXmlSignificantWhitespace.cs
- ALinqExpressionVisitor.cs
- Compress.cs
- DiscoveryEndpointValidator.cs
- ApplicationFileParser.cs
- BinaryWriter.cs
- FontWeights.cs
- ImportCatalogPart.cs
- ObjectItemNoOpAssemblyLoader.cs
- FixedHighlight.cs
- LastQueryOperator.cs
- OLEDB_Enum.cs
- BindingMemberInfo.cs
- ApplicationSecurityInfo.cs
- recordstate.cs
- ImmutableObjectAttribute.cs
- QueryReaderSettings.cs
- GenericPrincipal.cs
- XPathNodeHelper.cs
- HttpFileCollection.cs
- ReadWriteSpinLock.cs
- SmuggledIUnknown.cs
- EmbossBitmapEffect.cs
- BufferedMessageData.cs
- UInt32Storage.cs
- Timer.cs
- LinearGradientBrush.cs
- WebUtil.cs
- IdentityReference.cs
- Int32RectConverter.cs
- HtmlElementCollection.cs
- DataGridViewColumnCollectionDialog.cs
- CleanUpVirtualizedItemEventArgs.cs
- GridViewRowPresenterBase.cs
- ActivityExecutionWorkItem.cs
- CaseDesigner.xaml.cs
- GeometryCombineModeValidation.cs
- HtmlInputCheckBox.cs
- QfeChecker.cs
- TransformProviderWrapper.cs
- PageAsyncTask.cs
- UserMapPath.cs
- DataGridViewRowHeaderCell.cs
- TextRangeAdaptor.cs
- PipeStream.cs
- SoapDocumentServiceAttribute.cs
- DataServiceExpressionVisitor.cs
- PropertyIdentifier.cs
- ListItemCollection.cs
- SafeFileMappingHandle.cs
- CategoryGridEntry.cs
- UIElementParaClient.cs
- CompilerError.cs
- CompilationUnit.cs
- TailPinnedEventArgs.cs
- AssignDesigner.xaml.cs
- HtmlInputControl.cs
- DataControlFieldCell.cs
- EntityTransaction.cs
- MarkupExtensionSerializer.cs
- DataSourceCache.cs
- DataGridViewRow.cs
- ScriptReferenceEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- SByteConverter.cs
- SocketPermission.cs
- FlowchartSizeFeature.cs
- WindowsListViewGroupHelper.cs
- ValidationEventArgs.cs
- VideoDrawing.cs
- ZoneLinkButton.cs
- DrawingVisualDrawingContext.cs
- XmlnsPrefixAttribute.cs
- DataSetUtil.cs
- ApplicationTrust.cs
- MultiTrigger.cs