Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- HtmlDocument.cs
- UnmanagedMemoryStream.cs
- SqlInternalConnection.cs
- Int32Storage.cs
- HTMLTextWriter.cs
- Vector3DIndependentAnimationStorage.cs
- TableRow.cs
- ModelItemCollection.cs
- HtmlControlAdapter.cs
- SessionEndingCancelEventArgs.cs
- BlobPersonalizationState.cs
- HostVisual.cs
- ToolStripOverflowButton.cs
- CompositeFontParser.cs
- XPathMultyIterator.cs
- Freezable.cs
- TreeNodeEventArgs.cs
- HttpWriter.cs
- Canvas.cs
- DispatcherSynchronizationContext.cs
- DataControlImageButton.cs
- MenuBase.cs
- XmlSchemaSimpleTypeUnion.cs
- DiagnosticsElement.cs
- RunInstallerAttribute.cs
- ToolBarOverflowPanel.cs
- MiniModule.cs
- BrowserTree.cs
- CngAlgorithmGroup.cs
- BeginSelectCardRequest.cs
- SQLChars.cs
- dataprotectionpermissionattribute.cs
- _NestedSingleAsyncResult.cs
- SqlRowUpdatingEvent.cs
- ViewDesigner.cs
- EntityDataSourceDesigner.cs
- WebPartDescription.cs
- CatalogZoneBase.cs
- DeviceContext.cs
- ConfigurationManagerInternalFactory.cs
- DataGridColumnFloatingHeader.cs
- CustomTypeDescriptor.cs
- DynamicDataResources.Designer.cs
- StringInfo.cs
- RtfToXamlLexer.cs
- XmlDomTextWriter.cs
- ArrayTypeMismatchException.cs
- SettingsPropertyValue.cs
- httpapplicationstate.cs
- ToolboxBitmapAttribute.cs
- ListViewPagedDataSource.cs
- TerminatorSinks.cs
- FullTextState.cs
- Internal.cs
- Empty.cs
- Timer.cs
- DetailsViewInsertedEventArgs.cs
- FlowLayoutPanel.cs
- XamlBrushSerializer.cs
- SwitchExpression.cs
- TextEditorTables.cs
- DependencySource.cs
- InternalConfigConfigurationFactory.cs
- FixUp.cs
- AttributeUsageAttribute.cs
- AliasGenerator.cs
- ItemsChangedEventArgs.cs
- RecordConverter.cs
- Model3DGroup.cs
- FindCriteria.cs
- DefaultPerformanceCounters.cs
- DoubleConverter.cs
- MappingException.cs
- SelectedDatesCollection.cs
- DataGridItemCollection.cs
- ErrorWrapper.cs
- IdentifierCreationService.cs
- TableParagraph.cs
- ObjectCloneHelper.cs
- DragEvent.cs
- MemoryPressure.cs
- Util.cs
- DesignOnlyAttribute.cs
- TextPointerBase.cs
- AnnotationResource.cs
- WindowsServiceElement.cs
- DesignerForm.cs
- FontSourceCollection.cs
- Int32Animation.cs
- ControlBuilderAttribute.cs
- PseudoWebRequest.cs
- StylusEventArgs.cs
- BindingListCollectionView.cs
- PlaceHolder.cs
- WpfKnownTypeInvoker.cs
- DrawingCollection.cs
- HtmlInputRadioButton.cs
- IOThreadTimer.cs
- CellPartitioner.cs
- SqlFunctions.cs