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
- ExpressionList.cs
- MetadataSerializer.cs
- BuiltInExpr.cs
- OperationContractAttribute.cs
- RectValueSerializer.cs
- Form.cs
- DataGridViewCellCollection.cs
- CompositeDataBoundControl.cs
- ProxyWebPartConnectionCollection.cs
- ConfigXmlText.cs
- ConditionedDesigner.cs
- GiveFeedbackEvent.cs
- TimeSpanConverter.cs
- NamedPipeActivation.cs
- CodeCompileUnit.cs
- WebPartCancelEventArgs.cs
- DeclarativeCatalogPart.cs
- NullableBoolConverter.cs
- LabelAutomationPeer.cs
- RegexWriter.cs
- NullEntityWrapper.cs
- StartUpEventArgs.cs
- PathFigureCollectionConverter.cs
- AlternateView.cs
- CodeMemberField.cs
- XmlBoundElement.cs
- Vector3DValueSerializer.cs
- SupportsPreviewControlAttribute.cs
- XmlTextWriter.cs
- TimeSpanOrInfiniteValidator.cs
- ProcessModelSection.cs
- RPIdentityRequirement.cs
- PlacementWorkspace.cs
- MultidimensionalArrayItemReference.cs
- CannotUnloadAppDomainException.cs
- SoapTypeAttribute.cs
- ArrangedElementCollection.cs
- TraceContextRecord.cs
- BitmapSourceSafeMILHandle.cs
- AuthenticationServiceManager.cs
- Hex.cs
- ResourceReader.cs
- TextTrailingWordEllipsis.cs
- PagerSettings.cs
- FindCriteria11.cs
- TimestampInformation.cs
- WinCategoryAttribute.cs
- Panel.cs
- ReflectionServiceProvider.cs
- SvcMapFileSerializer.cs
- TabletDevice.cs
- PerfCounterSection.cs
- FigureHelper.cs
- ScopeCompiler.cs
- PropertyTab.cs
- DataGridViewRowCollection.cs
- XmlTypeAttribute.cs
- ListControlStringCollectionEditor.cs
- CircleHotSpot.cs
- Guid.cs
- VSWCFServiceContractGenerator.cs
- DataTableNewRowEvent.cs
- DynamicHyperLink.cs
- SqlDataSourceDesigner.cs
- AutoResizedEvent.cs
- CryptoApi.cs
- _IPv6Address.cs
- ResourceDictionaryCollection.cs
- dtdvalidator.cs
- BinaryFormatterWriter.cs
- RotationValidation.cs
- PlainXmlWriter.cs
- XmlQueryStaticData.cs
- oledbmetadatacolumnnames.cs
- WsatTransactionFormatter.cs
- ContainerVisual.cs
- PeerCustomResolverElement.cs
- PolicyConversionContext.cs
- SrgsElementFactory.cs
- ToolStripSettings.cs
- MarkupExtensionReturnTypeAttribute.cs
- DataFieldConverter.cs
- MouseGesture.cs
- PerformanceCountersElement.cs
- ApplicationDirectory.cs
- WebPartAuthorizationEventArgs.cs
- SqlCaseSimplifier.cs
- AttributeCollection.cs
- EventProviderBase.cs
- TableStyle.cs
- HttpFileCollectionBase.cs
- ObjectDataSourceSelectingEventArgs.cs
- SymbolPair.cs
- URLAttribute.cs
- CodeConstructor.cs
- RegionInfo.cs
- _DigestClient.cs
- SerializationFieldInfo.cs
- ClientTarget.cs
- FontFamilyValueSerializer.cs