Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- X509Certificate.cs
- ListBox.cs
- VirtualDirectoryMappingCollection.cs
- DisplayInformation.cs
- ImagingCache.cs
- WinEventTracker.cs
- BitmapInitialize.cs
- ResXBuildProvider.cs
- ReachDocumentReferenceCollectionSerializerAsync.cs
- InputChannelAcceptor.cs
- AssociatedControlConverter.cs
- TypeCodeDomSerializer.cs
- ShapingEngine.cs
- AvTraceDetails.cs
- ConfigXmlElement.cs
- SignerInfo.cs
- ControlBuilder.cs
- DoubleStorage.cs
- IconHelper.cs
- OdbcError.cs
- RegistryPermission.cs
- ModelUIElement3D.cs
- NativeMethods.cs
- EventMap.cs
- WebPartEditVerb.cs
- ObjectQuery.cs
- PageCache.cs
- SiteMapNodeCollection.cs
- CharStorage.cs
- ExtenderProvidedPropertyAttribute.cs
- VerticalAlignConverter.cs
- CfgParser.cs
- MethodBuilder.cs
- DataStorage.cs
- TemplateContent.cs
- AuthenticationService.cs
- HandleRef.cs
- TripleDESCryptoServiceProvider.cs
- DebugHandleTracker.cs
- TableLayoutStyle.cs
- TextCollapsingProperties.cs
- SafeArchiveContext.cs
- HuffmanTree.cs
- DynamicValueConverter.cs
- CatalogPartCollection.cs
- Literal.cs
- PointLightBase.cs
- ToolStripAdornerWindowService.cs
- ResolvePPIDRequest.cs
- DesignerSerializerAttribute.cs
- Crc32Helper.cs
- CounterCreationDataCollection.cs
- DeobfuscatingStream.cs
- Win32SafeHandles.cs
- ObjectComplexPropertyMapping.cs
- Evidence.cs
- LinkTarget.cs
- Application.cs
- HyperLinkDataBindingHandler.cs
- IntegerValidator.cs
- ObjectNotFoundException.cs
- ListBoxAutomationPeer.cs
- TransactionCache.cs
- RelatedPropertyManager.cs
- NotFiniteNumberException.cs
- SoapInteropTypes.cs
- IOException.cs
- RuntimeWrappedException.cs
- SevenBitStream.cs
- DelegatingConfigHost.cs
- StorageAssociationTypeMapping.cs
- XomlCompilerParameters.cs
- XmlSchemaSimpleTypeList.cs
- PKCS1MaskGenerationMethod.cs
- SmiTypedGetterSetter.cs
- Int32AnimationUsingKeyFrames.cs
- RuntimeCompatibilityAttribute.cs
- OleDbInfoMessageEvent.cs
- PackageStore.cs
- DispatcherObject.cs
- JoinGraph.cs
- BitVector32.cs
- ApplyTemplatesAction.cs
- EntityContainer.cs
- WebHeaderCollection.cs
- BasicKeyConstraint.cs
- Stroke.cs
- RelationshipWrapper.cs
- ClassicBorderDecorator.cs
- PropertyDescriptorGridEntry.cs
- NetworkInterface.cs
- XmlElementElement.cs
- RotateTransform.cs
- CriticalFinalizerObject.cs
- CdpEqualityComparer.cs
- ObjectAssociationEndMapping.cs
- Connection.cs
- DataKeyCollection.cs
- EdmScalarPropertyAttribute.cs
- DataGridViewSelectedCellCollection.cs