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
- DataSourceHelper.cs
- ScaleTransform.cs
- AnnotationStore.cs
- SqlReorderer.cs
- TimeSpanValidatorAttribute.cs
- Grammar.cs
- CacheChildrenQuery.cs
- SerializationException.cs
- FieldNameLookup.cs
- TableStyle.cs
- ToolBarButtonClickEvent.cs
- ObjectDisposedException.cs
- PresentationAppDomainManager.cs
- FilteredReadOnlyMetadataCollection.cs
- DataDesignUtil.cs
- OutputScopeManager.cs
- MarshalByValueComponent.cs
- CompatibleComparer.cs
- CodeDomSerializationProvider.cs
- BrushValueSerializer.cs
- HorizontalAlignConverter.cs
- MenuStrip.cs
- _LocalDataStore.cs
- DataServiceRequest.cs
- Point3DCollection.cs
- CompatibleIComparer.cs
- CommandConverter.cs
- FacetDescription.cs
- CustomAttributeSerializer.cs
- TreeIterators.cs
- DesignBindingPropertyDescriptor.cs
- IndexerNameAttribute.cs
- UserControlParser.cs
- DateTimePicker.cs
- ProxyDataContractResolver.cs
- SessionStateUtil.cs
- PingReply.cs
- CreateParams.cs
- WebHttpEndpoint.cs
- BoundColumn.cs
- SQLGuid.cs
- DataSourceXmlTextReader.cs
- SystemFonts.cs
- StateMachineAction.cs
- ProfileInfo.cs
- HtmlInputHidden.cs
- SendingRequestEventArgs.cs
- PolyQuadraticBezierSegment.cs
- StdRegProviderWrapper.cs
- PostBackOptions.cs
- XmlIgnoreAttribute.cs
- ModelTreeEnumerator.cs
- UnicodeEncoding.cs
- ListViewGroupItemCollection.cs
- BuildProvider.cs
- MenuStrip.cs
- SiteMapPath.cs
- TypedElement.cs
- LayoutTableCell.cs
- RangeBaseAutomationPeer.cs
- DropTarget.cs
- TakeQueryOptionExpression.cs
- TemplateBindingExtensionConverter.cs
- SelectorAutomationPeer.cs
- TableRowGroup.cs
- ReachObjectContext.cs
- Interlocked.cs
- StreamGeometry.cs
- EditorZone.cs
- DataSourceControlBuilder.cs
- HttpHandlerAction.cs
- XmlIterators.cs
- RoutedEventConverter.cs
- ProcessHostMapPath.cs
- ObjectQuery_EntitySqlExtensions.cs
- UniqueConstraint.cs
- BitmapEffectGroup.cs
- Base64Encoder.cs
- Pkcs7Signer.cs
- DataGridViewDataErrorEventArgs.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- ContainerVisual.cs
- BulletedListEventArgs.cs
- CachingHintValidation.cs
- TreeView.cs
- SystemIPInterfaceProperties.cs
- ContentFilePart.cs
- AppDomainUnloadedException.cs
- Parser.cs
- GenericEnumerator.cs
- OdbcPermission.cs
- TableParagraph.cs
- VisualTreeUtils.cs
- SizeAnimation.cs
- SspiSecurityTokenParameters.cs
- CqlBlock.cs
- ForeignKeyConstraint.cs
- MgmtConfigurationRecord.cs
- ReachDocumentPageSerializerAsync.cs
- TreeIterators.cs