Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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. //------------------------------------------------------------------------------ //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
- Int32EqualityComparer.cs
- SerializationStore.cs
- FtpWebResponse.cs
- PackWebRequest.cs
- SqlCacheDependencySection.cs
- JournalNavigationScope.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ResourceType.cs
- XmlEncoding.cs
- QilInvokeEarlyBound.cs
- RegexBoyerMoore.cs
- UIPropertyMetadata.cs
- ExpressionVisitor.cs
- XmlMembersMapping.cs
- FilteredXmlReader.cs
- StorageSetMapping.cs
- VisualBasicSettings.cs
- TranslateTransform.cs
- AudioLevelUpdatedEventArgs.cs
- JsonWriter.cs
- AttachedPropertyDescriptor.cs
- SqlAliaser.cs
- SimpleBitVector32.cs
- CngProvider.cs
- RichTextBox.cs
- ListViewCommandEventArgs.cs
- QuotaExceededException.cs
- BufferedWebEventProvider.cs
- PreloadedPackages.cs
- EntitySqlException.cs
- RuntimeWrappedException.cs
- X509CertificateRecipientServiceCredential.cs
- TreeNodeSelectionProcessor.cs
- ViewEvent.cs
- ObjectManager.cs
- Knowncolors.cs
- GlobalItem.cs
- SqlTypeSystemProvider.cs
- AtomicFile.cs
- Activator.cs
- _FtpControlStream.cs
- WindowsNonControl.cs
- ClassValidator.cs
- InboundActivityHelper.cs
- DbProviderFactories.cs
- OleDbParameterCollection.cs
- ThumbButtonInfo.cs
- StartUpEventArgs.cs
- UseAttributeSetsAction.cs
- UdpDiscoveryMessageFilter.cs
- QilValidationVisitor.cs
- WpfKnownType.cs
- CustomAttributeBuilder.cs
- GeneralTransform.cs
- MetabaseSettingsIis7.cs
- TransformerTypeCollection.cs
- InvokeHandlers.cs
- cache.cs
- TraceUtility.cs
- XmlNamespaceMapping.cs
- ListItemCollection.cs
- EventProviderTraceListener.cs
- WebReferenceOptions.cs
- ExecutionContext.cs
- FastEncoderWindow.cs
- DecoderNLS.cs
- FlowDocumentPage.cs
- SqlError.cs
- DoubleUtil.cs
- SafeThemeHandle.cs
- WinFormsSpinner.cs
- AssemblyBuilderData.cs
- CollectionBuilder.cs
- PermissionAttributes.cs
- ProcessMessagesAsyncResult.cs
- IndexedString.cs
- HttpWebRequestElement.cs
- SessionPageStateSection.cs
- Vector3DCollection.cs
- UnsafeNetInfoNativeMethods.cs
- SystemColorTracker.cs
- DependencyPropertyDescriptor.cs
- WorkflowServiceAttributesTypeConverter.cs
- ExeConfigurationFileMap.cs
- FieldNameLookup.cs
- MembershipUser.cs
- WebPartDeleteVerb.cs
- GridItemCollection.cs
- DataGridCellEditEndingEventArgs.cs
- PrincipalPermission.cs
- Popup.cs
- SaveFileDialog.cs
- LiteralText.cs
- BitStream.cs
- StsCommunicationException.cs
- CompilerWrapper.cs
- SQLGuidStorage.cs
- MenuItemBindingCollection.cs
- DropSource.cs
- Enum.cs