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
- ImmutableObjectAttribute.cs
- StylusButtonCollection.cs
- XamlPathDataSerializer.cs
- DefaultWorkflowTransactionService.cs
- ListCollectionView.cs
- CompareValidator.cs
- HttpContextServiceHost.cs
- AuthenticationService.cs
- BaseCodePageEncoding.cs
- TrackingDataItemValue.cs
- URLEditor.cs
- ObjectHandle.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- XPathNavigatorReader.cs
- LocationSectionRecord.cs
- DynamicRenderer.cs
- DateTimeOffsetConverter.cs
- CacheHelper.cs
- TextEditorTyping.cs
- DelegateBodyWriter.cs
- CqlErrorHelper.cs
- XmlAttributeCollection.cs
- RuntimeConfigLKG.cs
- SelectedGridItemChangedEvent.cs
- Win32SafeHandles.cs
- translator.cs
- LassoSelectionBehavior.cs
- Overlapped.cs
- NotFiniteNumberException.cs
- RadioButtonStandardAdapter.cs
- TextReader.cs
- DelegateArgumentValue.cs
- TypeInfo.cs
- PopupEventArgs.cs
- EntitySqlQueryCacheKey.cs
- MediaSystem.cs
- Helpers.cs
- XmlSerializationReader.cs
- RangeBase.cs
- WorkflowEventArgs.cs
- ByteConverter.cs
- UnsafeNativeMethodsTablet.cs
- DecimalStorage.cs
- DetailsViewPagerRow.cs
- SolidColorBrush.cs
- Vector3DCollection.cs
- ListViewSelectEventArgs.cs
- XmlQueryType.cs
- XmlQueryStaticData.cs
- SynchronizationScope.cs
- InputLanguageSource.cs
- PropertyEmitter.cs
- DropShadowEffect.cs
- ItemAutomationPeer.cs
- HttpCapabilitiesBase.cs
- NotifyParentPropertyAttribute.cs
- ParentUndoUnit.cs
- InfoCardProofToken.cs
- SettingsBase.cs
- WebRequestModuleElementCollection.cs
- HwndKeyboardInputProvider.cs
- DesignerActionKeyboardBehavior.cs
- HwndProxyElementProvider.cs
- XmlTextReaderImpl.cs
- HttpProtocolImporter.cs
- SerializationStore.cs
- XmlSerializationWriter.cs
- SettingsBase.cs
- Size3DConverter.cs
- ArithmeticLiteral.cs
- CriticalHandle.cs
- DataSpaceManager.cs
- NetTcpSection.cs
- CodeDirectoryCompiler.cs
- PersianCalendar.cs
- XmlUnspecifiedAttribute.cs
- DataGridViewCellCancelEventArgs.cs
- SoapRpcServiceAttribute.cs
- DecoderExceptionFallback.cs
- MessageDescriptionCollection.cs
- cache.cs
- QueryStringParameter.cs
- LineSegment.cs
- TransformPattern.cs
- PasswordBox.cs
- HttpProtocolImporter.cs
- SettingsAttributeDictionary.cs
- RangeValidator.cs
- VersionUtil.cs
- SpeakInfo.cs
- IntPtr.cs
- ScopedKnownTypes.cs
- EventsTab.cs
- StylusShape.cs
- NodeInfo.cs
- HttpProfileBase.cs
- Rectangle.cs
- InternalConfigSettingsFactory.cs
- hresults.cs
- HtmlInputImage.cs