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
- KnownBoxes.cs
- RSACryptoServiceProvider.cs
- COM2ComponentEditor.cs
- MimeTypeMapper.cs
- InstalledVoice.cs
- SortableBindingList.cs
- XmlUtil.cs
- DataControlLinkButton.cs
- StateMachineHistory.cs
- CodeGroup.cs
- COM2ICategorizePropertiesHandler.cs
- UIInitializationException.cs
- DecimalAnimationBase.cs
- Guid.cs
- OpenTypeCommon.cs
- Vector3DAnimation.cs
- RepeatBehavior.cs
- OutputCacheEntry.cs
- MonitoringDescriptionAttribute.cs
- Int32RectValueSerializer.cs
- Internal.cs
- NullableIntAverageAggregationOperator.cs
- SvcMapFileSerializer.cs
- UncommonField.cs
- CustomWebEventKey.cs
- LocalValueEnumerator.cs
- HashMembershipCondition.cs
- CommandLineParser.cs
- ButtonBase.cs
- UserInitiatedRoutedEventPermission.cs
- StylusPlugInCollection.cs
- SqlProvider.cs
- AmbientValueAttribute.cs
- Visual3D.cs
- CodeAttachEventStatement.cs
- SharedPerformanceCounter.cs
- PanelDesigner.cs
- Sql8ExpressionRewriter.cs
- FixedSOMPageElement.cs
- XmlImplementation.cs
- VirtualPathData.cs
- TextBoxView.cs
- TextComposition.cs
- DataBindingExpressionBuilder.cs
- IconHelper.cs
- ScopedKnownTypes.cs
- DesignerCatalogPartChrome.cs
- ChildTable.cs
- OracleConnectionStringBuilder.cs
- ValidationError.cs
- TemplateContent.cs
- MsmqIntegrationMessageProperty.cs
- OperationCanceledException.cs
- FloatUtil.cs
- NativeMethods.cs
- messageonlyhwndwrapper.cs
- OracleInternalConnection.cs
- DynamicRendererThreadManager.cs
- OrderedDictionary.cs
- CompiledXpathExpr.cs
- SqlEnums.cs
- InvalidDataContractException.cs
- NetNamedPipeSecurityMode.cs
- StringToken.cs
- ReflectTypeDescriptionProvider.cs
- CapabilitiesState.cs
- WebPartUserCapability.cs
- DelegatedStream.cs
- DynamicILGenerator.cs
- NullRuntimeConfig.cs
- RegionInfo.cs
- UInt16Storage.cs
- UserControl.cs
- CultureData.cs
- CollectionView.cs
- FlowDecisionDesigner.xaml.cs
- Camera.cs
- CapacityStreamGeometryContext.cs
- BlurEffect.cs
- PublisherMembershipCondition.cs
- PagedControl.cs
- BrowsableAttribute.cs
- CompilerParameters.cs
- InboundActivityHelper.cs
- WebResponse.cs
- SimpleHandlerBuildProvider.cs
- AssociationTypeEmitter.cs
- LogSwitch.cs
- DoubleSumAggregationOperator.cs
- XslAst.cs
- tibetanshape.cs
- ScriptRegistrationManager.cs
- ResourceContainer.cs
- ResourceBinder.cs
- StringOutput.cs
- ConvertersCollection.cs
- UnsafePeerToPeerMethods.cs
- UdpTransportBindingElement.cs
- GeneralTransform2DTo3D.cs
- AutoScrollHelper.cs