Code:
/ FX-1434 / FX-1434 / 1.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
- UntrustedRecipientException.cs
- AuthenticationModuleElementCollection.cs
- PrintPreviewDialog.cs
- URI.cs
- ProcessStartInfo.cs
- ParamArrayAttribute.cs
- LinearQuaternionKeyFrame.cs
- PageThemeBuildProvider.cs
- XmlMapping.cs
- AttributeUsageAttribute.cs
- FontConverter.cs
- TableDetailsCollection.cs
- LazyTextWriterCreator.cs
- HighlightComponent.cs
- TypeLibConverter.cs
- EncryptedKeyIdentifierClause.cs
- Permission.cs
- SiteMapNodeItemEventArgs.cs
- ImageListUtils.cs
- ContractReference.cs
- FilterFactory.cs
- BitmapEffectCollection.cs
- OLEDB_Enum.cs
- ManagedIStream.cs
- PasswordRecovery.cs
- MailHeaderInfo.cs
- RNGCryptoServiceProvider.cs
- CodeAccessSecurityEngine.cs
- BoolExpressionVisitors.cs
- LinkLabel.cs
- EntityContainer.cs
- brushes.cs
- DoubleLinkListEnumerator.cs
- DataDocumentXPathNavigator.cs
- Sentence.cs
- ByteRangeDownloader.cs
- DesignerDataStoredProcedure.cs
- XmlSchemaSimpleTypeList.cs
- Dynamic.cs
- RegistryKey.cs
- PropertyInformationCollection.cs
- InputScope.cs
- IntSecurity.cs
- SQLStringStorage.cs
- RealizationDrawingContextWalker.cs
- InternalBase.cs
- WebCodeGenerator.cs
- LayoutManager.cs
- BitmapMetadataEnumerator.cs
- UnsettableComboBox.cs
- ApplicationGesture.cs
- PersistenceTypeAttribute.cs
- BrowserCapabilitiesFactory.cs
- ConfigXmlComment.cs
- MissingFieldException.cs
- UserControl.cs
- ArrayMergeHelper.cs
- ImageFormatConverter.cs
- PatternMatcher.cs
- CodeTypeReferenceCollection.cs
- KeyGestureConverter.cs
- QuotedPairReader.cs
- SuppressIldasmAttribute.cs
- TokenCreationException.cs
- ContentValidator.cs
- SortDescriptionCollection.cs
- GridItemCollection.cs
- SplineKeyFrames.cs
- TrackingParticipant.cs
- CompositeFontParser.cs
- EventLogQuery.cs
- ExcCanonicalXml.cs
- Renderer.cs
- TdsEnums.cs
- X509WindowsSecurityToken.cs
- ImageMap.cs
- EncodingDataItem.cs
- COM2PropertyPageUITypeConverter.cs
- WebDescriptionAttribute.cs
- FloaterBaseParagraph.cs
- ItemChangedEventArgs.cs
- DataContractSerializerSection.cs
- ReflectTypeDescriptionProvider.cs
- CompilerResults.cs
- DBAsyncResult.cs
- Resources.Designer.cs
- StopStoryboard.cs
- Int64Storage.cs
- OleDbTransaction.cs
- TraceFilter.cs
- oledbconnectionstring.cs
- SimpleType.cs
- EnumType.cs
- SHA256.cs
- SQLString.cs
- HttpModuleActionCollection.cs
- ControlCommandSet.cs
- CustomErrorsSectionWrapper.cs
- TextContainer.cs
- CrossContextChannel.cs