Code:
/ FX-1434 / FX-1434 / 1.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
- XmlNullResolver.cs
- ExpandoObject.cs
- CodeParameterDeclarationExpressionCollection.cs
- QilFunction.cs
- RandomNumberGenerator.cs
- OleDbRowUpdatingEvent.cs
- ExtenderProvidedPropertyAttribute.cs
- ObjectViewEntityCollectionData.cs
- WebAdminConfigurationHelper.cs
- TabControl.cs
- DrawingImage.cs
- FixedSOMTableRow.cs
- EntityDataSourceContextCreatedEventArgs.cs
- HttpCacheParams.cs
- DataGridViewAutoSizeModeEventArgs.cs
- SqlTypesSchemaImporter.cs
- CommandSet.cs
- KeyManager.cs
- ResourceManager.cs
- LateBoundBitmapDecoder.cs
- ActivityInstance.cs
- VBCodeProvider.cs
- TableCell.cs
- ConnectionProviderAttribute.cs
- CharAnimationUsingKeyFrames.cs
- Run.cs
- XhtmlConformanceSection.cs
- RelationshipFixer.cs
- LambdaCompiler.Binary.cs
- CancelAsyncOperationRequest.cs
- AggregateNode.cs
- XmlEncodedRawTextWriter.cs
- FullTrustAssembly.cs
- ProxyHwnd.cs
- ReadOnlyCollection.cs
- BitmapSourceSafeMILHandle.cs
- CoreSwitches.cs
- LinkLabel.cs
- DataGridViewElement.cs
- StateBag.cs
- DataGridViewRow.cs
- TextEncodedRawTextWriter.cs
- DmlSqlGenerator.cs
- PackageProperties.cs
- SkipStoryboardToFill.cs
- HandlerBase.cs
- MenuItemBindingCollection.cs
- HotSpot.cs
- ServiceDiscoveryElement.cs
- WinEventTracker.cs
- CharacterString.cs
- ShutDownListener.cs
- FrugalList.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- TraceSection.cs
- GradientBrush.cs
- Int32EqualityComparer.cs
- FunctionGenerator.cs
- LastQueryOperator.cs
- HttpClientProtocol.cs
- NavigationProperty.cs
- LayoutUtils.cs
- SafeHandles.cs
- XmlSubtreeReader.cs
- SpecialFolderEnumConverter.cs
- InputScope.cs
- ContainerControl.cs
- TabControlEvent.cs
- CustomErrorsSection.cs
- ObjectCloneHelper.cs
- Soap12ProtocolReflector.cs
- EditCommandColumn.cs
- COM2EnumConverter.cs
- ParentQuery.cs
- VisualTarget.cs
- SourceFilter.cs
- ToolStripSeparator.cs
- DataRecordObjectView.cs
- CustomSignedXml.cs
- UpdateRecord.cs
- FrugalMap.cs
- BamlWriter.cs
- EntityViewGenerationConstants.cs
- PropertyMapper.cs
- GenericRootAutomationPeer.cs
- StringArrayEditor.cs
- CodeTypeParameterCollection.cs
- GenericRootAutomationPeer.cs
- AttributeSetAction.cs
- RankException.cs
- PropertyMap.cs
- BamlBinaryWriter.cs
- DataControlFieldHeaderCell.cs
- DocumentViewerBaseAutomationPeer.cs
- EntityContainerAssociationSetEnd.cs
- ControlBuilder.cs
- CodeAttributeArgument.cs
- HitTestWithPointDrawingContextWalker.cs
- MultiBinding.cs
- Attributes.cs