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
- RectAnimationUsingKeyFrames.cs
- EditCommandColumn.cs
- RecordManager.cs
- SelectionChangedEventArgs.cs
- QueryMath.cs
- SequenceRangeCollection.cs
- AuthenticationConfig.cs
- ParameterEditorUserControl.cs
- ThreadAbortException.cs
- HtmlEmptyTagControlBuilder.cs
- BrowserCapabilitiesFactoryBase.cs
- METAHEADER.cs
- StylusPointCollection.cs
- MatrixAnimationBase.cs
- EncodingNLS.cs
- EditBehavior.cs
- ApplicationSecurityManager.cs
- SafeRightsManagementSessionHandle.cs
- ServiceHostingEnvironment.cs
- DataGridViewCellStyleConverter.cs
- AccessibleObject.cs
- ByteStack.cs
- PaperSource.cs
- DataGridViewCellPaintingEventArgs.cs
- GPPOINT.cs
- ValidationRuleCollection.cs
- ProcessInputEventArgs.cs
- Timer.cs
- Util.cs
- CodeStatement.cs
- FragmentQueryKB.cs
- DynamicILGenerator.cs
- KnownIds.cs
- TypeConverterHelper.cs
- CLSCompliantAttribute.cs
- DataViewManager.cs
- EntityDataSourceEntitySetNameItem.cs
- ContentControl.cs
- CellTreeNodeVisitors.cs
- TdsParserStateObject.cs
- HtmlToClrEventProxy.cs
- AstNode.cs
- MSAAEventDispatcher.cs
- DuplicateWaitObjectException.cs
- ZoneLinkButton.cs
- DataGridSortCommandEventArgs.cs
- IDReferencePropertyAttribute.cs
- WindowsFormsSectionHandler.cs
- GridView.cs
- DataSourceXmlSerializer.cs
- ProcessInfo.cs
- Asn1IntegerConverter.cs
- ThreadSafeList.cs
- xmlsaver.cs
- ConfigurationSection.cs
- Item.cs
- WebPartRestoreVerb.cs
- XmlSchemaSimpleTypeList.cs
- ComplexLine.cs
- PathFigureCollection.cs
- OperationCanceledException.cs
- ListComponentEditor.cs
- FolderNameEditor.cs
- SiteMapDataSourceView.cs
- KeyboardEventArgs.cs
- SafeWaitHandle.cs
- HistoryEventArgs.cs
- DataGridViewTextBoxColumn.cs
- DynamicILGenerator.cs
- AdRotatorDesigner.cs
- DelegatingConfigHost.cs
- FrugalList.cs
- ReplyChannelAcceptor.cs
- OleDbException.cs
- TextServicesHost.cs
- ReflectionPermission.cs
- CodeAccessSecurityEngine.cs
- AspNetRouteServiceHttpHandler.cs
- ToolStripItemEventArgs.cs
- PropertyChangingEventArgs.cs
- ChangeDirector.cs
- IteratorFilter.cs
- DescriptionAttribute.cs
- ContextItemManager.cs
- DrawingDrawingContext.cs
- CaseInsensitiveComparer.cs
- MimeFormatter.cs
- AutoResizedEvent.cs
- DataGridViewRowHeaderCell.cs
- LinkLabel.cs
- XmlLanguageConverter.cs
- OverflowException.cs
- DummyDataSource.cs
- StopRoutingHandler.cs
- _KerberosClient.cs
- CertificateReferenceElement.cs
- FixedDocumentSequencePaginator.cs
- DependencyObjectType.cs
- HighlightVisual.cs
- OleDbError.cs