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
- BinaryObjectInfo.cs
- ConfigXmlElement.cs
- UpdatePanelControlTrigger.cs
- NullableConverter.cs
- QilCloneVisitor.cs
- CompositeCollection.cs
- TransformPatternIdentifiers.cs
- XmlSchemaExternal.cs
- coordinatorfactory.cs
- FreezableOperations.cs
- XamlReader.cs
- DataChangedEventManager.cs
- Bits.cs
- Stopwatch.cs
- ComboBoxItem.cs
- ResXDataNode.cs
- VersionPair.cs
- TimeSpanValidator.cs
- Subtree.cs
- FormClosedEvent.cs
- LocatorPart.cs
- SettingsContext.cs
- IndexExpression.cs
- ListenUriMode.cs
- StringValueSerializer.cs
- XhtmlCssHandler.cs
- SqlProvider.cs
- GenericTypeParameterBuilder.cs
- CodeThrowExceptionStatement.cs
- LineGeometry.cs
- JsonFormatWriterGenerator.cs
- AccessorTable.cs
- FormsIdentity.cs
- EntityCommandDefinition.cs
- SqlTypeConverter.cs
- SecurityPolicySection.cs
- XmlAttributeCache.cs
- InputLanguageManager.cs
- COM2IPerPropertyBrowsingHandler.cs
- XmlChildEnumerator.cs
- InfoCardListRequest.cs
- WebPartMenuStyle.cs
- Pipe.cs
- DocumentPageTextView.cs
- BindingContext.cs
- RealizationDrawingContextWalker.cs
- AnnouncementEventArgs.cs
- OneOfConst.cs
- SafePEFileHandle.cs
- CollectionContainer.cs
- cookieexception.cs
- InternalDuplexChannelListener.cs
- ServiceSettingsResponseInfo.cs
- XmlWrappingReader.cs
- ScrollContentPresenter.cs
- ViewLoader.cs
- PersonalizationEntry.cs
- TextBoxLine.cs
- ExpressionBuilderCollection.cs
- LockRenewalTask.cs
- OSEnvironmentHelper.cs
- WebPartZoneBase.cs
- PropertyTabChangedEvent.cs
- MessageProtectionOrder.cs
- HiddenField.cs
- ConstantExpression.cs
- EditorZoneBase.cs
- WebSysDisplayNameAttribute.cs
- GradientStop.cs
- SafeProcessHandle.cs
- BrowserCapabilitiesFactoryBase.cs
- WebServiceHandlerFactory.cs
- ConfigUtil.cs
- SR.cs
- _IPv4Address.cs
- iisPickupDirectory.cs
- NativeMethods.cs
- PointConverter.cs
- ListView.cs
- BamlLocalizabilityResolver.cs
- ZipPackagePart.cs
- Utils.cs
- ActivityXRefPropertyEditor.cs
- TraceEventCache.cs
- RowParagraph.cs
- TypedAsyncResult.cs
- TypeSystemProvider.cs
- SpeechUI.cs
- ComPlusDiagnosticTraceRecords.cs
- ImageAutomationPeer.cs
- RequestTimeoutManager.cs
- GridViewHeaderRowPresenter.cs
- Section.cs
- MissingMemberException.cs
- ThreadInterruptedException.cs
- XmlSchemaComplexType.cs
- Span.cs
- SafeFindHandle.cs
- Debug.cs
- ExitEventArgs.cs