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
- MediaScriptCommandRoutedEventArgs.cs
- ViewGenResults.cs
- RecordManager.cs
- DocumentApplicationJournalEntry.cs
- ParameterReplacerVisitor.cs
- ClosureBinding.cs
- DynamicRenderer.cs
- Column.cs
- XmlSchemaSequence.cs
- ExtensibleClassFactory.cs
- XmlComplianceUtil.cs
- ProfileWorkflowElement.cs
- MsmqException.cs
- DataBoundControlHelper.cs
- DatagridviewDisplayedBandsData.cs
- ViewBase.cs
- TextElementCollection.cs
- CanonicalXml.cs
- sqlinternaltransaction.cs
- Brush.cs
- BadImageFormatException.cs
- JsonWriter.cs
- RequestCachePolicyConverter.cs
- MimeMapping.cs
- ValidatorCollection.cs
- DataGridHeaderBorder.cs
- SoapObjectWriter.cs
- CorrelationManager.cs
- DataGridAutoFormat.cs
- NGCSerializerAsync.cs
- XPathDocumentNavigator.cs
- HttpCacheParams.cs
- _HTTPDateParse.cs
- ObjectSet.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ToolBarButtonDesigner.cs
- DbDataReader.cs
- XamlInterfaces.cs
- IntSecurity.cs
- ListControl.cs
- BooleanToVisibilityConverter.cs
- EventSetterHandlerConverter.cs
- ColumnMapCopier.cs
- OwnerDrawPropertyBag.cs
- Property.cs
- _ChunkParse.cs
- SspiWrapper.cs
- DayRenderEvent.cs
- MetadataPropertyCollection.cs
- InstanceDataCollection.cs
- StandardCommands.cs
- SerializationHelper.cs
- TableLayoutSettingsTypeConverter.cs
- DecoderNLS.cs
- WebBrowserBase.cs
- OLEDB_Util.cs
- DirectoryNotFoundException.cs
- TypeDescriptionProviderAttribute.cs
- SynchronizedDispatch.cs
- DocumentPaginator.cs
- TextClipboardData.cs
- ManualResetEvent.cs
- FtpWebRequest.cs
- ControlPager.cs
- ComponentChangingEvent.cs
- FileDetails.cs
- adornercollection.cs
- TextPatternIdentifiers.cs
- Triangle.cs
- PeerObject.cs
- TranslateTransform3D.cs
- GacUtil.cs
- AuthenticationService.cs
- RawAppCommandInputReport.cs
- Int32.cs
- BuildManager.cs
- CancelEventArgs.cs
- securestring.cs
- MSAAEventDispatcher.cs
- XPathSingletonIterator.cs
- SkipStoryboardToFill.cs
- MaskedTextProvider.cs
- XpsColorContext.cs
- PathSegment.cs
- ErrorEventArgs.cs
- IgnorePropertiesAttribute.cs
- DecimalMinMaxAggregationOperator.cs
- SecurityTokenReferenceStyle.cs
- LayoutDump.cs
- __Filters.cs
- DesigntimeLicenseContext.cs
- WindowsFormsSectionHandler.cs
- DecimalAnimationBase.cs
- TCPClient.cs
- MiniCustomAttributeInfo.cs
- RefExpr.cs
- DataBindingsDialog.cs
- DataError.cs
- KeyConverter.cs
- GridEntry.cs