Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DetailsViewDeleteEventArgs.cs
- XmlSchemaAttributeGroup.cs
- EventDescriptor.cs
- DataGridTextColumn.cs
- ArrayWithOffset.cs
- AssemblyUtil.cs
- PropertyGridEditorPart.cs
- MessageSecurityProtocol.cs
- XPathDocumentNavigator.cs
- ProcessingInstructionAction.cs
- ComboBoxItem.cs
- ArcSegment.cs
- _Connection.cs
- SafeNativeHandle.cs
- ResourceManager.cs
- BrushValueSerializer.cs
- LabelEditEvent.cs
- FtpWebResponse.cs
- RouteCollection.cs
- TransformerInfo.cs
- Events.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- MaxValueConverter.cs
- SoapExtensionTypeElementCollection.cs
- XmlIgnoreAttribute.cs
- WindowHideOrCloseTracker.cs
- KeyTimeConverter.cs
- StringCollection.cs
- SchemeSettingElement.cs
- GifBitmapEncoder.cs
- TextServicesLoader.cs
- TextServicesContext.cs
- BamlTreeMap.cs
- _ScatterGatherBuffers.cs
- PerformanceCounterScope.cs
- KeyTime.cs
- DataControlFieldTypeEditor.cs
- RepeatInfo.cs
- XPathParser.cs
- ErrorRuntimeConfig.cs
- ItemsChangedEventArgs.cs
- WebHostedComPlusServiceHost.cs
- ContextMenu.cs
- FrameDimension.cs
- WriterOutput.cs
- LinkUtilities.cs
- RelationshipFixer.cs
- ImageFormatConverter.cs
- BitmapFrameDecode.cs
- CodeMemberField.cs
- SQLBinary.cs
- SqlOuterApplyReducer.cs
- EncodingTable.cs
- SingleObjectCollection.cs
- DependencyPropertyAttribute.cs
- SessionEndingEventArgs.cs
- _IPv6Address.cs
- WindowsRebar.cs
- Assembly.cs
- UriTemplateClientFormatter.cs
- AxisAngleRotation3D.cs
- BrushConverter.cs
- TableParaClient.cs
- CheckBoxRenderer.cs
- SettingsPropertyIsReadOnlyException.cs
- WindowsStreamSecurityUpgradeProvider.cs
- CodeExporter.cs
- NumberAction.cs
- ExpressionBuilder.cs
- SqlReferenceCollection.cs
- ParameterToken.cs
- LicenseException.cs
- Simplifier.cs
- ListGeneralPage.cs
- GrammarBuilderWildcard.cs
- HitTestWithPointDrawingContextWalker.cs
- NumericUpDownAcceleration.cs
- ExpressionBindingCollection.cs
- XmlSchemaAnnotated.cs
- StoreConnection.cs
- Exceptions.cs
- SqlAliasesReferenced.cs
- PropertyPathWorker.cs
- TdsRecordBufferSetter.cs
- PersonalizableTypeEntry.cs
- BoundColumn.cs
- Boolean.cs
- StrokeCollectionDefaultValueFactory.cs
- StoragePropertyMapping.cs
- ComponentChangingEvent.cs
- EdmPropertyAttribute.cs
- ConstraintConverter.cs
- Visual3DCollection.cs
- _NetworkingPerfCounters.cs
- ControlUtil.cs
- CompiledIdentityConstraint.cs
- DataServiceRequestArgs.cs
- InputScopeAttribute.cs
- DataGridViewMethods.cs
- CacheVirtualItemsEvent.cs