Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ListViewItem.cs
- SqlPersonalizationProvider.cs
- IconBitmapDecoder.cs
- XmlSchemaValidationException.cs
- PtsContext.cs
- MostlySingletonList.cs
- WsdlBuildProvider.cs
- ScriptControlManager.cs
- BaseUriHelper.cs
- TaskResultSetter.cs
- XmlElement.cs
- UIElement3D.cs
- StreamSecurityUpgradeInitiatorBase.cs
- KeyFrames.cs
- TransactionValidationBehavior.cs
- LicenseContext.cs
- RootProfilePropertySettingsCollection.cs
- DotAtomReader.cs
- TextReturnReader.cs
- TypeLibConverter.cs
- WebScriptClientGenerator.cs
- PersonalizablePropertyEntry.cs
- FontFamilyIdentifier.cs
- BaseCAMarshaler.cs
- NegotiateStream.cs
- CallSiteOps.cs
- KeyValuePairs.cs
- ClrProviderManifest.cs
- DependencyPropertyHelper.cs
- DataServiceHost.cs
- HttpDictionary.cs
- BlurBitmapEffect.cs
- DataGridViewCellFormattingEventArgs.cs
- WorkflowEventArgs.cs
- RemotingException.cs
- BaseParser.cs
- LinearKeyFrames.cs
- SystemIPAddressInformation.cs
- EntitySqlQueryState.cs
- CurrencyWrapper.cs
- AsyncInvokeOperation.cs
- _ProxyChain.cs
- DrawingGroupDrawingContext.cs
- WindowsRegion.cs
- Int32CAMarshaler.cs
- TextEffectCollection.cs
- printdlgexmarshaler.cs
- SafeNativeMethods.cs
- OracleRowUpdatedEventArgs.cs
- SyndicationCategory.cs
- DateTimeFormat.cs
- ExitEventArgs.cs
- CancelEventArgs.cs
- TextEmbeddedObject.cs
- ActivityExecutionContext.cs
- TraceSwitch.cs
- DBCSCodePageEncoding.cs
- Stack.cs
- CodeAccessPermission.cs
- Wizard.cs
- EnumerableRowCollectionExtensions.cs
- PiiTraceSource.cs
- FeatureSupport.cs
- KeyGestureConverter.cs
- InvalidPropValue.cs
- AlignmentYValidation.cs
- PasswordRecoveryAutoFormat.cs
- DSGeneratorProblem.cs
- QuotedStringFormatReader.cs
- odbcmetadatacollectionnames.cs
- TabletDevice.cs
- AliasGenerator.cs
- ReliableRequestSessionChannel.cs
- MultiDataTrigger.cs
- AnnotationService.cs
- UpdatableGenericsFeature.cs
- ScopeCollection.cs
- ToolStripControlHost.cs
- InternalEnumValidatorAttribute.cs
- EncodingTable.cs
- ClientSettingsSection.cs
- DesignerExtenders.cs
- UserControl.cs
- ScrollEventArgs.cs
- RelOps.cs
- ProcessHostConfigUtils.cs
- ListViewItem.cs
- InstalledFontCollection.cs
- ProofTokenCryptoHandle.cs
- ChtmlTextBoxAdapter.cs
- UIElementCollection.cs
- ZipIOBlockManager.cs
- ISAPIWorkerRequest.cs
- XmlSchemaComplexContent.cs
- SharedDp.cs
- _Events.cs
- DocumentPageViewAutomationPeer.cs
- TextWriter.cs
- UpdateException.cs
- X509SecurityTokenProvider.cs