Code:
/ FX-1434 / FX-1434 / 1.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
- ResourceReader.cs
- XmlHierarchyData.cs
- GridViewColumn.cs
- AccessViolationException.cs
- versioninfo.cs
- MachineKeySection.cs
- HtmlTable.cs
- MgmtConfigurationRecord.cs
- UpdateException.cs
- TypeValidationEventArgs.cs
- TextEffect.cs
- ObjectAssociationEndMapping.cs
- CacheRequest.cs
- Vector3DCollectionConverter.cs
- MsmqIntegrationInputChannel.cs
- ConvertEvent.cs
- PageAdapter.cs
- WebMessageEncodingElement.cs
- Rule.cs
- StickyNoteContentControl.cs
- TreeNodeClickEventArgs.cs
- VectorAnimationUsingKeyFrames.cs
- Clipboard.cs
- XpsSerializationException.cs
- ComboBoxHelper.cs
- XmlObjectSerializerReadContextComplexJson.cs
- TriggerAction.cs
- HMACSHA1.cs
- CompilerTypeWithParams.cs
- Slider.cs
- StrongNameMembershipCondition.cs
- AsyncResult.cs
- HtmlTextViewAdapter.cs
- XmlAttributeCollection.cs
- CustomAttributeSerializer.cs
- DeclarativeCatalogPart.cs
- securestring.cs
- StaticContext.cs
- SrgsToken.cs
- RangeContentEnumerator.cs
- ToolStrip.cs
- BaseCAMarshaler.cs
- ObjectSet.cs
- MultiPropertyDescriptorGridEntry.cs
- InplaceBitmapMetadataWriter.cs
- BufferBuilder.cs
- StylesEditorDialog.cs
- StandardBindingImporter.cs
- WebReference.cs
- ObjectConverter.cs
- DataBoundLiteralControl.cs
- KnownAssembliesSet.cs
- Hash.cs
- CompoundFileStorageReference.cs
- MsmqActivation.cs
- SharedPersonalizationStateInfo.cs
- Style.cs
- DoubleLinkListEnumerator.cs
- SiteMapHierarchicalDataSourceView.cs
- FastPropertyAccessor.cs
- ThreadInterruptedException.cs
- DataViewManagerListItemTypeDescriptor.cs
- WriteTimeStream.cs
- _NegoState.cs
- ALinqExpressionVisitor.cs
- Soap12ServerProtocol.cs
- TraceListeners.cs
- StructuredType.cs
- PeerIPHelper.cs
- WindowsGrip.cs
- CultureSpecificStringDictionary.cs
- CanExecuteRoutedEventArgs.cs
- CodeTypeMemberCollection.cs
- FunctionQuery.cs
- HttpServerVarsCollection.cs
- ContentType.cs
- ToolBarTray.cs
- GridViewCommandEventArgs.cs
- CompatibleIComparer.cs
- SqlParameterCollection.cs
- SqlGenericUtil.cs
- ViewManager.cs
- IndexedString.cs
- ConfigurationManagerHelper.cs
- DuplicateWaitObjectException.cs
- WebPartZoneDesigner.cs
- Parallel.cs
- SystemColorTracker.cs
- SQLSingleStorage.cs
- SetUserPreferenceRequest.cs
- IntegerValidatorAttribute.cs
- StatusBarItem.cs
- CodeCatchClauseCollection.cs
- SrgsElement.cs
- uribuilder.cs
- TextEmbeddedObject.cs
- WinEventWrap.cs
- WebPartVerbsEventArgs.cs
- SByte.cs
- EventDescriptor.cs