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
- HGlobalSafeHandle.cs
- Int64Animation.cs
- DashStyle.cs
- GridViewSortEventArgs.cs
- FaultHandlingFilter.cs
- TraceHandlerErrorFormatter.cs
- GridViewPageEventArgs.cs
- ActivationArguments.cs
- Mutex.cs
- FontSource.cs
- ISAPIRuntime.cs
- EditorBrowsableAttribute.cs
- WebPartHeaderCloseVerb.cs
- TextTreeFixupNode.cs
- PenLineJoinValidation.cs
- XPathBinder.cs
- BamlBinaryReader.cs
- WebPartUserCapability.cs
- validationstate.cs
- SecurityHeaderLayout.cs
- RequestFactory.cs
- ControlDesignerState.cs
- XamlTreeBuilderBamlRecordWriter.cs
- ExecutorLocksHeldException.cs
- SynchronizationHandlesCodeDomSerializer.cs
- TextDecorationUnitValidation.cs
- PostBackTrigger.cs
- DataFormats.cs
- XsdCachingReader.cs
- Floater.cs
- RepeaterItemCollection.cs
- sqlcontext.cs
- Clipboard.cs
- TextElementCollectionHelper.cs
- RuntimeArgumentHandle.cs
- ControlLocalizer.cs
- PlanCompiler.cs
- BaseCAMarshaler.cs
- MultiByteCodec.cs
- AssemblyName.cs
- ControlAdapter.cs
- SessionStateItemCollection.cs
- PathGeometry.cs
- CriticalFinalizerObject.cs
- CustomAttribute.cs
- HierarchicalDataBoundControl.cs
- ColorKeyFrameCollection.cs
- LiteralControl.cs
- DisableDpiAwarenessAttribute.cs
- BindingNavigator.cs
- ListItemCollection.cs
- SemanticKeyElement.cs
- WindowsComboBox.cs
- TcpAppDomainProtocolHandler.cs
- TemplatePropertyEntry.cs
- _BasicClient.cs
- SystemIcmpV6Statistics.cs
- XmlProcessingInstruction.cs
- AttributedMetaModel.cs
- GridLength.cs
- PropertyMap.cs
- DocumentPageViewAutomationPeer.cs
- HttpDebugHandler.cs
- CollectionBase.cs
- DoubleAnimationUsingPath.cs
- DataSourceCache.cs
- DragEventArgs.cs
- HttpResponseInternalBase.cs
- XmlSchemaAppInfo.cs
- oledbmetadatacolumnnames.cs
- ToolBarOverflowPanel.cs
- ServiceDurableInstance.cs
- DataExpression.cs
- HandleCollector.cs
- BindingCollection.cs
- TargetControlTypeAttribute.cs
- MemberPathMap.cs
- CompiledIdentityConstraint.cs
- ipaddressinformationcollection.cs
- Localizer.cs
- CustomErrorsSection.cs
- TextTreeTextBlock.cs
- WindowsFormsSynchronizationContext.cs
- LogWriteRestartAreaState.cs
- ApplicationServiceHelper.cs
- PopOutPanel.cs
- VisualStateGroup.cs
- DefaultSection.cs
- LayoutExceptionEventArgs.cs
- MeasureData.cs
- Menu.cs
- ByteAnimationBase.cs
- FilteredAttributeCollection.cs
- DifferencingCollection.cs
- VirtualPathUtility.cs
- XmlSignatureManifest.cs
- Synchronization.cs
- Base64Decoder.cs
- TableCellCollection.cs
- ZipIOCentralDirectoryDigitalSignature.cs