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
- PrivateUnsafeNativeCompoundFileMethods.cs
- _ListenerResponseStream.cs
- DTCTransactionManager.cs
- Slider.cs
- CategoryNameCollection.cs
- RemotingSurrogateSelector.cs
- PackageDigitalSignature.cs
- ControlOperationInvoker.cs
- WebPartConnectionsCancelVerb.cs
- DomNameTable.cs
- DefaultWorkflowSchedulerService.cs
- DecoderFallbackWithFailureFlag.cs
- ParseElementCollection.cs
- TimeEnumHelper.cs
- TextSegment.cs
- Int32Storage.cs
- HtmlTextViewAdapter.cs
- Assert.cs
- XmlEntity.cs
- GlyphManager.cs
- PingReply.cs
- HideDisabledControlAdapter.cs
- MenuItemBindingCollection.cs
- ApplicationFileCodeDomTreeGenerator.cs
- TemplatedWizardStep.cs
- ClientConfigPaths.cs
- IncrementalHitTester.cs
- MediaEntryAttribute.cs
- WebServiceHandler.cs
- TransformDescriptor.cs
- FormViewDeleteEventArgs.cs
- Operand.cs
- DirectoryRedirect.cs
- SelectionWordBreaker.cs
- OrderedDictionaryStateHelper.cs
- GridViewCancelEditEventArgs.cs
- IResourceProvider.cs
- ProfilePropertySettingsCollection.cs
- CorrelationResolver.cs
- ScriptControlDescriptor.cs
- UniqueCodeIdentifierScope.cs
- TypeDescriptorFilterService.cs
- GcSettings.cs
- TemplateControlCodeDomTreeGenerator.cs
- StringUtil.cs
- IntegerFacetDescriptionElement.cs
- DataSpaceManager.cs
- XamlDesignerSerializationManager.cs
- ExtendedProperty.cs
- InvalidFilterCriteriaException.cs
- Configuration.cs
- DataGridTableStyleMappingNameEditor.cs
- BridgeDataReader.cs
- PasswordRecovery.cs
- PrintController.cs
- ItemCollection.cs
- CommonProperties.cs
- SpellerInterop.cs
- Typography.cs
- ContextDataSource.cs
- DispatcherEventArgs.cs
- TrackBarDesigner.cs
- Model3D.cs
- RelatedView.cs
- CalculatedColumn.cs
- CodeTypeDelegate.cs
- FacetValueContainer.cs
- TaskbarItemInfo.cs
- DesignBindingPicker.cs
- unsafenativemethodstextservices.cs
- FacetChecker.cs
- Regex.cs
- GridPattern.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- AddValidationError.cs
- RestHandler.cs
- TextSelectionHelper.cs
- SqlCommandAsyncResult.cs
- FontSource.cs
- RowToFieldTransformer.cs
- ClientSettingsSection.cs
- LinkLabelLinkClickedEvent.cs
- CompiledQuery.cs
- SerializationBinder.cs
- EditingMode.cs
- HtmlControl.cs
- ListDictionary.cs
- SR.cs
- DataGridViewColumnEventArgs.cs
- KernelTypeValidation.cs
- FaultContractInfo.cs
- DataControlPagerLinkButton.cs
- TargetParameterCountException.cs
- BezierSegment.cs
- EnlistmentTraceIdentifier.cs
- ToolStripContainer.cs
- HorizontalAlignConverter.cs
- HwndKeyboardInputProvider.cs
- _IPv4Address.cs
- DbModificationClause.cs