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
- DeferredBinaryDeserializerExtension.cs
- UnsafeNativeMethodsTablet.cs
- TabControlEvent.cs
- MulticastOption.cs
- GregorianCalendarHelper.cs
- WindowsButton.cs
- ItemCheckedEvent.cs
- SingleKeyFrameCollection.cs
- ValidatedControlConverter.cs
- ContextMenu.cs
- GridViewPageEventArgs.cs
- ProgressBar.cs
- KeyGestureConverter.cs
- BatchWriter.cs
- XLinq.cs
- PersonalizationDictionary.cs
- AmbiguousMatchException.cs
- PageHandlerFactory.cs
- OutOfMemoryException.cs
- TimeSpanMinutesConverter.cs
- ListBindingConverter.cs
- WebPartMenu.cs
- TraceSection.cs
- WebService.cs
- SafeRightsManagementHandle.cs
- XPathAncestorIterator.cs
- BaseAddressElementCollection.cs
- BasicHttpSecurityElement.cs
- DbConnectionPoolOptions.cs
- GeneralTransform3DTo2DTo3D.cs
- StrongName.cs
- CanExecuteRoutedEventArgs.cs
- SocketAddress.cs
- ApplicationDirectoryMembershipCondition.cs
- ResourcesGenerator.cs
- SiteOfOriginPart.cs
- InvalidWMPVersionException.cs
- Vector3DKeyFrameCollection.cs
- StandardMenuStripVerb.cs
- SQLResource.cs
- SchemaTableOptionalColumn.cs
- EventLogTraceListener.cs
- DesignerAttribute.cs
- DataGridParentRows.cs
- DataListItemCollection.cs
- Token.cs
- HttpHandlersSection.cs
- DocumentViewerBaseAutomationPeer.cs
- DesignerExtenders.cs
- TextRangeEditTables.cs
- EntityDataSourceEntityTypeFilterItem.cs
- MsmqInputSessionChannel.cs
- Matrix3DValueSerializer.cs
- RegisterResponseInfo.cs
- DependencyPropertyConverter.cs
- ItemsPanelTemplate.cs
- __Filters.cs
- ValidationError.cs
- CodeVariableDeclarationStatement.cs
- DataRow.cs
- LayoutDump.cs
- PropertyOverridesTypeEditor.cs
- TextEditor.cs
- AggregateNode.cs
- Trace.cs
- BamlCollectionHolder.cs
- CodeAttributeDeclarationCollection.cs
- ErrorInfoXmlDocument.cs
- And.cs
- DebugController.cs
- ZipIOCentralDirectoryFileHeader.cs
- Bold.cs
- HttpDateParse.cs
- AuthorizationRuleCollection.cs
- SBCSCodePageEncoding.cs
- Adorner.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- ToolStripLocationCancelEventArgs.cs
- Point.cs
- IdentityHolder.cs
- RuntimeEnvironment.cs
- ImpersonationContext.cs
- InputLanguageCollection.cs
- WebPartVerbsEventArgs.cs
- PermissionSetTriple.cs
- SelectionPattern.cs
- SelectionProcessor.cs
- WmfPlaceableFileHeader.cs
- StringArrayConverter.cs
- PartialArray.cs
- NamedObject.cs
- UrlMappingCollection.cs
- MarshalByValueComponent.cs
- SynchronousChannelMergeEnumerator.cs
- ProviderManager.cs
- DiagnosticsElement.cs
- DbConvert.cs
- DeflateStream.cs
- CompilerParameters.cs
- ResourceAssociationSet.cs