Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / DataKey.cs / 1 / DataKey.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data { using System; using System.Diagnostics; using System.ComponentModel; internal struct DataKey { internal const Int32 COLUMN = unchecked((int)0x0000FFFF); internal const Int32 DESCENDING = unchecked((int)0x80000000); private const int maxColumns = 32; private readonly DataColumn[] columns; ////// internal DataKey(DataColumn[] columns, bool copyColumns) { if (columns == null) throw ExceptionBuilder.ArgumentNull("columns"); if (columns.Length == 0) throw ExceptionBuilder.KeyNoColumns(); if (columns.Length > maxColumns) throw ExceptionBuilder.KeyTooManyColumns(maxColumns); for (int i = 0; i < columns.Length; i++) { if (columns[i] == null) throw ExceptionBuilder.ArgumentNull("column"); } for (int i = 0; i < columns.Length; i++) { for (int j = 0; j < i; j++) { if (columns[i] == columns[j]) { throw ExceptionBuilder.KeyDuplicateColumns(columns[i].ColumnName); } } } if (copyColumns) { // Need to make a copy of all columns this.columns = new DataColumn [columns.Length]; for (int i = 0; i < columns.Length; i++) this.columns[i] = columns[i]; } else { // take ownership of the array passed in this.columns = columns; } CheckState(); } internal DataColumn[] ColumnsReference { get { return columns; } } internal bool HasValue { get { return (null != columns); } } internal DataTable Table { get { return columns[0].Table; } } internal void CheckState() { DataTable table = columns[0].Table; if (table == null) { throw ExceptionBuilder.ColumnNotInAnyTable(); } for (int i = 1; i < columns.Length; i++) { if (columns[i].Table == null) { throw ExceptionBuilder.ColumnNotInAnyTable(); } if (columns[i].Table != table) { throw ExceptionBuilder.KeyTableMismatch(); } } } internal bool ColumnsEqual(DataKey key) { //check to see if this.columns && key2's columns are equal regardless of order DataColumn[] column1=columns; DataColumn[] column2=((DataKey)key).columns; if (column1 == column2) { return true; } else if (column1 == null || column2 == null) { return false; } else if (column1.Length != column2.Length) { return false; } else { int i, j; for (i=0; i[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PreviewPrintController.cs
- CodeAttributeDeclarationCollection.cs
- ToolStripItemCollection.cs
- HasCopySemanticsAttribute.cs
- EndpointPerformanceCounters.cs
- WebPartVerbCollection.cs
- Animatable.cs
- ButtonChrome.cs
- SecurityNegotiationException.cs
- FactoryGenerator.cs
- OpacityConverter.cs
- AppLevelCompilationSectionCache.cs
- PeerCollaborationPermission.cs
- ContainerControl.cs
- WindowPattern.cs
- RuleProcessor.cs
- XmlDeclaration.cs
- GZipStream.cs
- ColumnClickEvent.cs
- Fx.cs
- SqlAliasesReferenced.cs
- DecoderFallbackWithFailureFlag.cs
- DataTableReader.cs
- DataGridColumn.cs
- RuleValidation.cs
- AutomationElement.cs
- UpdatePanelControlTrigger.cs
- RSAPKCS1SignatureDeformatter.cs
- CurrencyWrapper.cs
- LinkUtilities.cs
- oledbconnectionstring.cs
- URLAttribute.cs
- AssemblyInfo.cs
- mda.cs
- Int32Rect.cs
- BitmapInitialize.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- BindableTemplateBuilder.cs
- SafeFindHandle.cs
- SponsorHelper.cs
- StateChangeEvent.cs
- FileUpload.cs
- FastPropertyAccessor.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- PackageRelationshipCollection.cs
- CodeTypeDeclaration.cs
- KeySpline.cs
- BrowserInteropHelper.cs
- SHA1CryptoServiceProvider.cs
- EntityDataSourceMemberPath.cs
- ChannelDemuxer.cs
- DecodeHelper.cs
- RoutedEventConverter.cs
- OutputCacheProfileCollection.cs
- Int16.cs
- SymbolMethod.cs
- DataGridViewCellConverter.cs
- RTLAwareMessageBox.cs
- FixedPage.cs
- EntityDataSourceWrapper.cs
- Range.cs
- FastEncoder.cs
- JoinQueryOperator.cs
- ServiceParser.cs
- ByteStream.cs
- WrappedIUnknown.cs
- ClientType.cs
- URLMembershipCondition.cs
- PersonalizationStateInfoCollection.cs
- SmtpCommands.cs
- GlyphRunDrawing.cs
- ContainerFilterService.cs
- DbDataAdapter.cs
- PrimitiveCodeDomSerializer.cs
- _ListenerResponseStream.cs
- DataGridViewHeaderCell.cs
- TextDecorationUnitValidation.cs
- OutputScopeManager.cs
- MsmqMessage.cs
- InstanceDataCollectionCollection.cs
- PathSegmentCollection.cs
- ConnectionConsumerAttribute.cs
- SchemaReference.cs
- VerificationAttribute.cs
- ToolStripDropDownItemDesigner.cs
- EventLogEntry.cs
- LineServices.cs
- InboundActivityHelper.cs
- PatternMatcher.cs
- datacache.cs
- PhoneCall.cs
- GroupBoxDesigner.cs
- EntityDataSourceDesignerHelper.cs
- WindowsListViewScroll.cs
- ValueSerializerAttribute.cs
- AttributeCollection.cs
- ReflectTypeDescriptionProvider.cs
- FileFormatException.cs
- DateRangeEvent.cs
- DirectoryNotFoundException.cs