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
- DisplayInformation.cs
- PackageRelationship.cs
- IUnknownConstantAttribute.cs
- DataGridColumnCollection.cs
- ClientUtils.cs
- TextRangeProviderWrapper.cs
- WebPartConnectionsConfigureVerb.cs
- FormViewUpdatedEventArgs.cs
- AddToCollection.cs
- UntypedNullExpression.cs
- _DisconnectOverlappedAsyncResult.cs
- TaskResultSetter.cs
- DbSourceCommand.cs
- ReaderOutput.cs
- Deflater.cs
- PageParserFilter.cs
- SocketInformation.cs
- BaseValidator.cs
- RelativeSource.cs
- ProxyAttribute.cs
- ToolboxComponentsCreatedEventArgs.cs
- SiteMap.cs
- ReflectEventDescriptor.cs
- Utils.cs
- SessionParameter.cs
- SafeNativeMethodsOther.cs
- Line.cs
- FileLogRecordEnumerator.cs
- RayHitTestParameters.cs
- InputDevice.cs
- XmlElementList.cs
- WeakRefEnumerator.cs
- Rect3DValueSerializer.cs
- RemotingConfigParser.cs
- HashHelper.cs
- COAUTHIDENTITY.cs
- ConditionCollection.cs
- NotImplementedException.cs
- StrokeNodeData.cs
- SystemResources.cs
- DefaultHttpHandler.cs
- RpcResponse.cs
- SoapFormatExtensions.cs
- TimeoutHelper.cs
- ContractListAdapter.cs
- PackageDigitalSignature.cs
- AggregationMinMaxHelpers.cs
- EmptyQuery.cs
- ViewStateModeByIdAttribute.cs
- Util.cs
- ToolboxDataAttribute.cs
- XamlFigureLengthSerializer.cs
- OrderByBuilder.cs
- ReadOnlyAttribute.cs
- ServiceKnownTypeAttribute.cs
- HyperLink.cs
- DataServices.cs
- EraserBehavior.cs
- OracleCommandSet.cs
- ChoiceConverter.cs
- Operand.cs
- NameNode.cs
- BookmarkCallbackWrapper.cs
- SetStoryboardSpeedRatio.cs
- UnmanagedMemoryStreamWrapper.cs
- CapabilitiesSection.cs
- ConfigurationSectionCollection.cs
- ByteAnimationBase.cs
- ResXDataNode.cs
- DependencyPropertyAttribute.cs
- ColorMatrix.cs
- CodeTryCatchFinallyStatement.cs
- XPathDocumentBuilder.cs
- ArcSegment.cs
- Configuration.cs
- RijndaelManaged.cs
- Activation.cs
- Transform3DCollection.cs
- CustomErrorCollection.cs
- TreeViewItem.cs
- XPathDocumentBuilder.cs
- ToolStripHighContrastRenderer.cs
- _AutoWebProxyScriptWrapper.cs
- SchemaCollectionPreprocessor.cs
- IsolatedStoragePermission.cs
- ApplicationActivator.cs
- ColumnTypeConverter.cs
- PointAnimationUsingKeyFrames.cs
- XD.cs
- Context.cs
- TableCellAutomationPeer.cs
- SecurityKeyType.cs
- PropertyGeneratedEventArgs.cs
- _RequestCacheProtocol.cs
- ModelChangedEventArgsImpl.cs
- ColorTransform.cs
- DataGridViewMethods.cs
- XmlDocumentType.cs
- BitmapInitialize.cs
- Debug.cs