Code:
/ 4.0 / 4.0 / 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.] ///// 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
- TextDecorationCollection.cs
- ObjectCloneHelper.cs
- HybridDictionary.cs
- ThreadNeutralSemaphore.cs
- XmlTextReaderImpl.cs
- WebPartCancelEventArgs.cs
- ScrollProviderWrapper.cs
- GPPOINTF.cs
- CharStorage.cs
- PropertyIdentifier.cs
- SnapLine.cs
- DefaultShape.cs
- MenuItemAutomationPeer.cs
- ToolStrip.cs
- ToolStripContainerActionList.cs
- RecipientIdentity.cs
- FilteredDataSetHelper.cs
- InstanceOwnerQueryResult.cs
- HorizontalAlignConverter.cs
- Object.cs
- CalloutQueueItem.cs
- SharedDp.cs
- XsdBuilder.cs
- cookiecontainer.cs
- ManagedFilter.cs
- UnitySerializationHolder.cs
- FactoryMaker.cs
- OleDbEnumerator.cs
- ProfileProvider.cs
- InternalConfigEventArgs.cs
- HandlerBase.cs
- Compress.cs
- ClientData.cs
- LineUtil.cs
- ComponentEditorPage.cs
- InputLanguageCollection.cs
- DataGridViewCellFormattingEventArgs.cs
- BroadcastEventHelper.cs
- XmlStreamNodeWriter.cs
- QueryStack.cs
- RuntimeConfig.cs
- DataGridViewLayoutData.cs
- BitmapEffectCollection.cs
- NameTable.cs
- X509CertificateRecipientClientCredential.cs
- JobCollate.cs
- BrowserCapabilitiesFactoryBase.cs
- AutomationPatternInfo.cs
- DataColumn.cs
- safex509handles.cs
- KeyedHashAlgorithm.cs
- SettingsBindableAttribute.cs
- DbExpressionVisitor_TResultType.cs
- AuthenticatingEventArgs.cs
- ProcessMonitor.cs
- AspNetHostingPermission.cs
- WindowsGraphics2.cs
- AuthenticationModuleElementCollection.cs
- DataGridViewCellConverter.cs
- DataContractJsonSerializerOperationBehavior.cs
- ModelItemCollectionImpl.cs
- EnumMember.cs
- WebPartsSection.cs
- Blend.cs
- TransactionScopeDesigner.cs
- CodeGenerator.cs
- ClonableStack.cs
- DesignerSelectionListAdapter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Pkcs9Attribute.cs
- FuncCompletionCallbackWrapper.cs
- CatalogZoneAutoFormat.cs
- SymmetricSecurityProtocol.cs
- CheckBox.cs
- XmlProcessingInstruction.cs
- MimeTypeMapper.cs
- DynamicDataResources.Designer.cs
- QuaternionAnimationUsingKeyFrames.cs
- QueryOperatorEnumerator.cs
- ContextMenuStripGroup.cs
- WebControlAdapter.cs
- ObjectReferenceStack.cs
- EmptyEnumerator.cs
- assemblycache.cs
- FormatVersion.cs
- ConstraintCollection.cs
- SafeBitVector32.cs
- JsonFormatReaderGenerator.cs
- ListViewCancelEventArgs.cs
- ClientSettingsSection.cs
- QilVisitor.cs
- MenuItem.cs
- EventLogPermissionAttribute.cs
- PrimitiveDataContract.cs
- NamespaceList.cs
- __Filters.cs
- ControlPropertyNameConverter.cs
- MobileTextWriter.cs
- DesignerLoader.cs
- OleDbStruct.cs