Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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.] ///// 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
- OleDbInfoMessageEvent.cs
- MetafileHeader.cs
- SiteIdentityPermission.cs
- ColorAnimationUsingKeyFrames.cs
- NeutralResourcesLanguageAttribute.cs
- Compilation.cs
- FileUpload.cs
- typedescriptorpermissionattribute.cs
- ProfileManager.cs
- OdbcInfoMessageEvent.cs
- CachedPathData.cs
- UpdatePanel.cs
- ComponentResourceKey.cs
- DesignTimeParseData.cs
- IntegrationExceptionEventArgs.cs
- HttpListener.cs
- DocumentSequenceHighlightLayer.cs
- CqlGenerator.cs
- CodeAccessSecurityEngine.cs
- PathParser.cs
- BlurBitmapEffect.cs
- Helpers.cs
- DataGridViewControlCollection.cs
- SctClaimSerializer.cs
- GridViewSortEventArgs.cs
- Point4DConverter.cs
- SqlDataSourceConnectionPanel.cs
- ActionMessageFilter.cs
- CellCreator.cs
- xdrvalidator.cs
- AppDomain.cs
- SchemaImporterExtensionsSection.cs
- InstanceOwnerException.cs
- TextReader.cs
- ServiceProviders.cs
- Polyline.cs
- AtomMaterializer.cs
- WebCategoryAttribute.cs
- ResXResourceSet.cs
- DSASignatureDeformatter.cs
- StorageMappingItemLoader.cs
- Function.cs
- StylusPoint.cs
- NonBatchDirectoryCompiler.cs
- ConfigurationElementCollection.cs
- ImageAnimator.cs
- AttributeUsageAttribute.cs
- XamlStyleSerializer.cs
- ListMarkerLine.cs
- RegexGroup.cs
- AuthorizationRuleCollection.cs
- ListViewItem.cs
- XmlArrayItemAttributes.cs
- JsonMessageEncoderFactory.cs
- EntityDesignPluralizationHandler.cs
- DataConnectionHelper.cs
- StandardOleMarshalObject.cs
- WizardStepBase.cs
- ToolboxSnapDragDropEventArgs.cs
- BitmapData.cs
- XmlSchemaSimpleTypeList.cs
- ValidationEventArgs.cs
- ChannelDispatcherBase.cs
- UndoManager.cs
- PublisherMembershipCondition.cs
- DefaultAuthorizationContext.cs
- FixedSOMTextRun.cs
- COM2PropertyDescriptor.cs
- NegationPusher.cs
- SplineKeyFrames.cs
- MDIClient.cs
- DocumentViewerBase.cs
- OrderingQueryOperator.cs
- Wildcard.cs
- DockEditor.cs
- FrameDimension.cs
- XmlQueryCardinality.cs
- HashAlgorithm.cs
- ConfigurationManager.cs
- StylusPointPropertyInfoDefaults.cs
- Figure.cs
- CryptoApi.cs
- Int64KeyFrameCollection.cs
- XmlSchemaAnnotation.cs
- RSACryptoServiceProvider.cs
- NullableDecimalSumAggregationOperator.cs
- ReadWriteObjectLock.cs
- BinaryMessageEncodingElement.cs
- SkewTransform.cs
- TransportDefaults.cs
- XmlRootAttribute.cs
- CacheHelper.cs
- ClaimSet.cs
- DataTableExtensions.cs
- EventSchemaTraceListener.cs
- FormViewPagerRow.cs
- SystemNetworkInterface.cs
- ProvidersHelper.cs
- EntityDataSource.cs
- ComponentRenameEvent.cs