Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- ArcSegment.cs
- GridViewPageEventArgs.cs
- RefreshEventArgs.cs
- EnumBuilder.cs
- SpecialFolderEnumConverter.cs
- TimeSpanMinutesConverter.cs
- IItemContainerGenerator.cs
- GridViewSortEventArgs.cs
- UnregisterInfo.cs
- TransformPatternIdentifiers.cs
- Geometry.cs
- FilteredDataSetHelper.cs
- Invariant.cs
- DateTime.cs
- SafeNativeMethods.cs
- WsdlWriter.cs
- PopupRoot.cs
- RemotingConfigParser.cs
- Matrix.cs
- WebPartHelpVerb.cs
- BuildResultCache.cs
- LocalizationComments.cs
- XmlSchemaObjectCollection.cs
- FlowNode.cs
- SynchronizationContextHelper.cs
- SqlRecordBuffer.cs
- FixedDSBuilder.cs
- OdbcEnvironmentHandle.cs
- CodeDelegateCreateExpression.cs
- HotCommands.cs
- TreeNodeStyle.cs
- NavigationService.cs
- WinFormsSpinner.cs
- Base64WriteStateInfo.cs
- MessageFormatterConverter.cs
- SourceFileBuildProvider.cs
- WorkflowDefinitionDispenser.cs
- BaseCollection.cs
- AuthenticationConfig.cs
- WaitHandleCannotBeOpenedException.cs
- InvalidCastException.cs
- ObsoleteAttribute.cs
- XmlCountingReader.cs
- WebEventCodes.cs
- ThemeableAttribute.cs
- DomainUpDown.cs
- CacheAxisQuery.cs
- FrameworkElementAutomationPeer.cs
- elementinformation.cs
- ServicePoint.cs
- IgnoreFlushAndCloseStream.cs
- SimpleModelProvider.cs
- StylusCaptureWithinProperty.cs
- coordinator.cs
- ApplicationServiceHelper.cs
- ParameterCollection.cs
- CompiledQueryCacheKey.cs
- SecuritySessionServerSettings.cs
- QuadraticEase.cs
- BitmapMetadata.cs
- NetTcpSectionData.cs
- SystemUdpStatistics.cs
- TreeView.cs
- CodeExporter.cs
- XslNumber.cs
- QuaternionAnimationBase.cs
- DataGridViewAccessibleObject.cs
- DesignTimeParseData.cs
- TreeViewHitTestInfo.cs
- CheckBox.cs
- MtomMessageEncoder.cs
- FirstMatchCodeGroup.cs
- StringArrayEditor.cs
- ListViewGroup.cs
- WindowCollection.cs
- UTF8Encoding.cs
- OptimizerPatterns.cs
- InternalDispatchObject.cs
- VScrollBar.cs
- SqlBuffer.cs
- MetadataItemEmitter.cs
- Directory.cs
- SystemIcons.cs
- XomlCompilerResults.cs
- ScaleTransform.cs
- AutomationEvent.cs
- DocumentReference.cs
- WmlListAdapter.cs
- XmlUtil.cs
- WebPartZone.cs
- AppSettingsExpressionBuilder.cs
- SourceExpressionException.cs
- TypeConverterAttribute.cs
- JournalEntryStack.cs
- OptimalBreakSession.cs
- EntityCollection.cs
- System.Data_BID.cs
- SqlNotificationRequest.cs
- OrderedHashRepartitionStream.cs
- IUnknownConstantAttribute.cs