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
- Panel.cs
- FreezableOperations.cs
- ByteConverter.cs
- MailMessageEventArgs.cs
- ProtocolsConfiguration.cs
- Splitter.cs
- CompilationUtil.cs
- SplineKeyFrames.cs
- BaseDataList.cs
- CommonEndpointBehaviorElement.cs
- CharacterMetricsDictionary.cs
- ConnectionOrientedTransportChannelFactory.cs
- Reference.cs
- Base64Stream.cs
- Stopwatch.cs
- WindowsListView.cs
- DayRenderEvent.cs
- MLangCodePageEncoding.cs
- LayoutTable.cs
- EventItfInfo.cs
- SqlConnectionString.cs
- AccessedThroughPropertyAttribute.cs
- RepeaterItem.cs
- ConfigXmlSignificantWhitespace.cs
- XPathExpr.cs
- DrawingState.cs
- ChannelServices.cs
- WhereQueryOperator.cs
- BasicKeyConstraint.cs
- DataGridViewControlCollection.cs
- GeometryCombineModeValidation.cs
- DataGridViewUtilities.cs
- VirtualDirectoryMapping.cs
- AspNetSynchronizationContext.cs
- CalendarButtonAutomationPeer.cs
- StateMachineTimers.cs
- EntityPropertyMappingAttribute.cs
- TypeSystemHelpers.cs
- Switch.cs
- ThaiBuddhistCalendar.cs
- UpdateTranslator.cs
- PictureBox.cs
- ClusterRegistryConfigurationProvider.cs
- DataBoundLiteralControl.cs
- ComplexBindingPropertiesAttribute.cs
- SamlNameIdentifierClaimResource.cs
- IxmlLineInfo.cs
- ContainerControlDesigner.cs
- ObjectComplexPropertyMapping.cs
- ContractComponent.cs
- ApplicationProxyInternal.cs
- HttpResponseWrapper.cs
- ToolboxBitmapAttribute.cs
- FormatConvertedBitmap.cs
- _AutoWebProxyScriptEngine.cs
- XmlUnspecifiedAttribute.cs
- MetadataHelper.cs
- SqlDataSourceFilteringEventArgs.cs
- ComplexBindingPropertiesAttribute.cs
- RayHitTestParameters.cs
- VisualStyleTypesAndProperties.cs
- TemplateInstanceAttribute.cs
- ItemMap.cs
- StaticResourceExtension.cs
- ParameterReplacerVisitor.cs
- Clock.cs
- OrCondition.cs
- OracleConnectionFactory.cs
- OleDbConnectionFactory.cs
- Convert.cs
- WebEvents.cs
- Serializer.cs
- EventLogHandle.cs
- ModuleConfigurationInfo.cs
- PropertyPanel.cs
- RegexMatch.cs
- VectorConverter.cs
- LayoutManager.cs
- ProgressPage.cs
- EdmItemCollection.cs
- IdentitySection.cs
- RadialGradientBrush.cs
- ControlIdConverter.cs
- Visitor.cs
- RecoverInstanceLocksCommand.cs
- Stackframe.cs
- AxisAngleRotation3D.cs
- _AutoWebProxyScriptEngine.cs
- ElementHostPropertyMap.cs
- KeyValuePairs.cs
- LayoutEditorPart.cs
- Accessors.cs
- Point3DAnimationUsingKeyFrames.cs
- DesignerActionHeaderItem.cs
- SessionSwitchEventArgs.cs
- EntityDataSourceSelectedEventArgs.cs
- BitmapEffectDrawing.cs
- Mappings.cs
- DataServiceConfiguration.cs
- AdvancedBindingEditor.cs