Code:
/ 4.0 / 4.0 / untmp / 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.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CopyAttributesAction.cs
- SelectionChangedEventArgs.cs
- ContentOnlyMessage.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- XmlAtomicValue.cs
- StrokeNode.cs
- StylusPointProperty.cs
- RegistryKey.cs
- FormViewCommandEventArgs.cs
- SourceItem.cs
- DataGridCommandEventArgs.cs
- HttpBrowserCapabilitiesWrapper.cs
- SerializeAbsoluteContext.cs
- HostExecutionContextManager.cs
- MemberPath.cs
- SqlExpressionNullability.cs
- DesignerImageAdapter.cs
- HybridDictionary.cs
- PixelShader.cs
- PhysicalOps.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DivideByZeroException.cs
- DefaultMemberAttribute.cs
- ImmutableObjectAttribute.cs
- ListParagraph.cs
- ThemeDirectoryCompiler.cs
- FixedPageProcessor.cs
- ButtonFieldBase.cs
- DoubleLinkListEnumerator.cs
- MessagePartProtectionMode.cs
- GroupBoxRenderer.cs
- ConvertersCollection.cs
- GiveFeedbackEventArgs.cs
- ProxyFragment.cs
- RTLAwareMessageBox.cs
- FixedSOMPageElement.cs
- StandardCommands.cs
- ControlPaint.cs
- Process.cs
- ControlBindingsCollection.cs
- ServiceModelStringsVersion1.cs
- RootDesignerSerializerAttribute.cs
- DiscoveryClientProtocol.cs
- RadioButtonList.cs
- RouteUrlExpressionBuilder.cs
- RectangleHotSpot.cs
- SqlMethodAttribute.cs
- SiteMapHierarchicalDataSourceView.cs
- HitTestParameters3D.cs
- ContentPropertyAttribute.cs
- FunctionQuery.cs
- ResXBuildProvider.cs
- TypeSystem.cs
- MsmqIntegrationProcessProtocolHandler.cs
- storagemappingitemcollection.viewdictionary.cs
- InheritanceContextChangedEventManager.cs
- AudioDeviceOut.cs
- QilStrConcatenator.cs
- DataRowCollection.cs
- CleanUpVirtualizedItemEventArgs.cs
- UserControlBuildProvider.cs
- TransactionScope.cs
- SignatureResourcePool.cs
- SettingsPropertyWrongTypeException.cs
- Missing.cs
- RuleConditionDialog.Designer.cs
- MiniMapControl.xaml.cs
- ObjectItemConventionAssemblyLoader.cs
- DataGridViewImageCell.cs
- CallSiteOps.cs
- FormViewModeEventArgs.cs
- TableLayoutStyle.cs
- AsyncContentLoadedEventArgs.cs
- Attribute.cs
- ClonableStack.cs
- ServiceThrottlingElement.cs
- QueryContinueDragEvent.cs
- KeyedHashAlgorithm.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- Track.cs
- NativeMethods.cs
- log.cs
- BoolExpression.cs
- XhtmlBasicCommandAdapter.cs
- PropertyGridDesigner.cs
- QuotedPrintableStream.cs
- EntityCommandExecutionException.cs
- HostSecurityManager.cs
- DbMetaDataColumnNames.cs
- HTMLTextWriter.cs
- DetailsViewDeletedEventArgs.cs
- WebZone.cs
- COM2PictureConverter.cs
- ThumbButtonInfo.cs
- Compiler.cs
- ToolStripOverflow.cs
- SafeFileMapViewHandle.cs
- UpdateManifestForBrowserApplication.cs
- SchemaObjectWriter.cs
- SpanIndex.cs