Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / DataKey.cs / 1305376 / 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
- ElementUtil.cs
- DrawingAttributes.cs
- TransformDescriptor.cs
- TemplateContent.cs
- AsnEncodedData.cs
- IteratorAsyncResult.cs
- DispatchChannelSink.cs
- ButtonBase.cs
- RegexReplacement.cs
- PropertyMetadata.cs
- HtmlShimManager.cs
- XmlTypeMapping.cs
- TypeElementCollection.cs
- ListViewAutomationPeer.cs
- XmlReaderSettings.cs
- SqlError.cs
- DataGridViewCellLinkedList.cs
- MethodCallTranslator.cs
- LambdaCompiler.cs
- AnimationStorage.cs
- PagePropertiesChangingEventArgs.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- FilterUserControlBase.cs
- WebResourceAttribute.cs
- SoapHelper.cs
- BindingContext.cs
- Vector3DCollectionConverter.cs
- InitializationEventAttribute.cs
- InternalCache.cs
- LinqDataSourceInsertEventArgs.cs
- FileAuthorizationModule.cs
- ToolStripOverflow.cs
- ProcessModelSection.cs
- MarkerProperties.cs
- WSTrust.cs
- ProtectedProviderSettings.cs
- UserValidatedEventArgs.cs
- StdRegProviderWrapper.cs
- IndexedString.cs
- AlphaSortedEnumConverter.cs
- _BufferOffsetSize.cs
- CacheAxisQuery.cs
- FileDialogPermission.cs
- sqlser.cs
- DefaultDiscoveryServiceExtension.cs
- XmlToDatasetMap.cs
- JournalEntryListConverter.cs
- SchemaNames.cs
- EmptyElement.cs
- CodeDelegateInvokeExpression.cs
- XmlSerializerOperationFormatter.cs
- RegexRunner.cs
- MachineKeySection.cs
- BitmapEffectInput.cs
- MouseButton.cs
- MetadataSerializer.cs
- KeyValueConfigurationElement.cs
- CommandDevice.cs
- GlyphsSerializer.cs
- InterleavedZipPartStream.cs
- DependencyPropertyHelper.cs
- MasterPageParser.cs
- RuntimeConfigLKG.cs
- DecimalAnimationUsingKeyFrames.cs
- WindowsEditBox.cs
- GPPOINT.cs
- Page.cs
- PersonalizableAttribute.cs
- PeerPresenceInfo.cs
- KeyNotFoundException.cs
- HMAC.cs
- RoutedPropertyChangedEventArgs.cs
- SymmetricKeyWrap.cs
- AttachmentCollection.cs
- future.cs
- RequestStatusBarUpdateEventArgs.cs
- ObjectStateFormatter.cs
- XsltLoader.cs
- ExtenderProviderService.cs
- CollectionBase.cs
- DocumentPageTextView.cs
- HostedTransportConfigurationBase.cs
- NameSpaceExtractor.cs
- ADMembershipUser.cs
- UrlPropertyAttribute.cs
- HtmlInputCheckBox.cs
- TraceHandlerErrorFormatter.cs
- ArgumentReference.cs
- CachedFontFace.cs
- Triplet.cs
- PrtCap_Public_Simple.cs
- ClipboardProcessor.cs
- ImageButton.cs
- MembershipSection.cs
- ColumnHeaderCollectionEditor.cs
- ProgressBar.cs
- OrderedDictionaryStateHelper.cs
- WebResourceAttribute.cs
- UnsafeNativeMethods.cs
- HttpContext.cs