Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ResponseBodyWriter.cs
- TypeValidationEventArgs.cs
- DataKeyCollection.cs
- MemberAssignmentAnalysis.cs
- ConfigXmlReader.cs
- SqlCacheDependency.cs
- Invariant.cs
- DataGridViewComboBoxColumnDesigner.cs
- DataBindEngine.cs
- DtdParser.cs
- ConstrainedDataObject.cs
- RawStylusInputCustomDataList.cs
- PhoneCallDesigner.cs
- SchemaEntity.cs
- HtmlElement.cs
- SmiRequestExecutor.cs
- Attributes.cs
- NetTcpSection.cs
- GridViewDeletedEventArgs.cs
- GenericTypeParameterBuilder.cs
- Metadata.cs
- CryptoStream.cs
- ListDesigner.cs
- TrailingSpaceComparer.cs
- TransformGroup.cs
- DataListItemCollection.cs
- Point3DCollectionValueSerializer.cs
- ExpressionBuilder.cs
- DockPattern.cs
- ConsoleKeyInfo.cs
- Point4DConverter.cs
- CompilationUtil.cs
- MaterialGroup.cs
- SizeChangedInfo.cs
- ListViewInsertedEventArgs.cs
- ConfigurationManagerHelper.cs
- PostBackOptions.cs
- entityreference_tresulttype.cs
- IntSecurity.cs
- MULTI_QI.cs
- WindowsListView.cs
- SQLResource.cs
- DataGrid.cs
- WorkflowTimerService.cs
- InvalidEnumArgumentException.cs
- util.cs
- BitVector32.cs
- TokenizerHelper.cs
- BufferedResponseStream.cs
- SmtpTransport.cs
- InfocardClientCredentials.cs
- NetworkInformationException.cs
- InternalBufferOverflowException.cs
- Expressions.cs
- ServiceDescriptionContext.cs
- StorageInfo.cs
- TypeSystemProvider.cs
- XmlEntity.cs
- documentsequencetextview.cs
- SqlDelegatedTransaction.cs
- WebPartCloseVerb.cs
- Selector.cs
- VirtualizingPanel.cs
- PointIndependentAnimationStorage.cs
- TreeView.cs
- PartialList.cs
- ControlBuilderAttribute.cs
- SharedPersonalizationStateInfo.cs
- OracleRowUpdatingEventArgs.cs
- InfoCardProofToken.cs
- TreeWalker.cs
- WinInet.cs
- MaterialCollection.cs
- SecurityToken.cs
- ListControl.cs
- TextViewDesigner.cs
- DataSourceView.cs
- StringInfo.cs
- CmsInterop.cs
- DBAsyncResult.cs
- AdornerDecorator.cs
- CompoundFileStreamReference.cs
- XmlSchemaSequence.cs
- SerialErrors.cs
- SystemKeyConverter.cs
- UInt32Converter.cs
- WSSecurityPolicy.cs
- SchemaCollectionPreprocessor.cs
- TypeConverterValueSerializer.cs
- DataGridViewDataErrorEventArgs.cs
- SerializableReadOnlyDictionary.cs
- XmlSchemaSet.cs
- ClientUtils.cs
- ProxyWebPartManager.cs
- ListItemViewControl.cs
- ModuleConfigurationInfo.cs
- StylusEventArgs.cs
- CodeTypeMemberCollection.cs
- ProfilePropertySettings.cs
- CompiledQueryCacheEntry.cs