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
- LocalizedNameDescriptionPair.cs
- WindowsClientCredential.cs
- JavaScriptSerializer.cs
- StreamResourceInfo.cs
- TargetControlTypeCache.cs
- TransformGroup.cs
- SemaphoreFullException.cs
- BaseProcessor.cs
- XmlSchemaSimpleContent.cs
- FormattedText.cs
- XmlDocumentType.cs
- Renderer.cs
- DataGridViewCellConverter.cs
- SecurityTokenException.cs
- ElementProxy.cs
- XsltLibrary.cs
- PerspectiveCamera.cs
- GPPOINTF.cs
- BaseCodePageEncoding.cs
- StringUtil.cs
- EncoderParameter.cs
- TimeoutException.cs
- SignatureConfirmations.cs
- WaitingCursor.cs
- CatalogZoneAutoFormat.cs
- SourceFileBuildProvider.cs
- JournalEntryListConverter.cs
- Light.cs
- Light.cs
- Model3DGroup.cs
- FlowDocumentPage.cs
- X509ChainElement.cs
- ApplyHostConfigurationBehavior.cs
- NameValueSectionHandler.cs
- KeyValuePairs.cs
- WebPartZoneBase.cs
- SortExpressionBuilder.cs
- PersonalizationStateInfo.cs
- SecurityKeyType.cs
- PackageDocument.cs
- MorphHelpers.cs
- ClientRuntimeConfig.cs
- ActivityCodeDomSerializationManager.cs
- StateRuntime.cs
- ServicePointManager.cs
- _ChunkParse.cs
- CodeLabeledStatement.cs
- EmptyControlCollection.cs
- NegotiationTokenAuthenticator.cs
- ReadOnlyNameValueCollection.cs
- CompensationHandlingFilter.cs
- TextSelection.cs
- CharacterMetrics.cs
- SqlBulkCopyColumnMapping.cs
- ClientOptions.cs
- CodeTypeDeclaration.cs
- QueryStringConverter.cs
- UnSafeCharBuffer.cs
- QuerySettings.cs
- GlyphTypeface.cs
- DateTimeOffsetAdapter.cs
- ServiceOperation.cs
- ACL.cs
- DataGridClipboardHelper.cs
- PersianCalendar.cs
- DataServiceQueryException.cs
- WindowsGraphics2.cs
- X509WindowsSecurityToken.cs
- StateRuntime.cs
- FileAccessException.cs
- ListDictionary.cs
- ConfigViewGenerator.cs
- SingleAnimation.cs
- KeyGestureConverter.cs
- LineBreak.cs
- WindowsIdentity.cs
- ReplyChannelAcceptor.cs
- StatementContext.cs
- MetaTable.cs
- CodeSnippetTypeMember.cs
- MatrixTransform3D.cs
- XpsS0ValidatingLoader.cs
- LinqDataView.cs
- iisPickupDirectory.cs
- Attributes.cs
- PageParserFilter.cs
- FormatterConverter.cs
- EmptyElement.cs
- DesignerActionVerbList.cs
- HealthMonitoringSection.cs
- ProxyWebPartManager.cs
- Utility.cs
- ValueSerializer.cs
- XmlSchemaObjectCollection.cs
- WindowClosedEventArgs.cs
- MapPathBasedVirtualPathProvider.cs
- EdmError.cs
- AppDomainFactory.cs
- ThicknessConverter.cs
- RolePrincipal.cs