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
- HierarchicalDataTemplate.cs
- ObsoleteAttribute.cs
- controlskin.cs
- IIS7WorkerRequest.cs
- HttpCapabilitiesEvaluator.cs
- ContextMenuAutomationPeer.cs
- AxDesigner.cs
- QuarticEase.cs
- CodeNamespaceCollection.cs
- COM2PictureConverter.cs
- ListView.cs
- FtpRequestCacheValidator.cs
- WebHttpSecurityElement.cs
- ButtonChrome.cs
- PathFigureCollection.cs
- EntityDataReader.cs
- ConfigurationSettings.cs
- DataSourceSelectArguments.cs
- TemplateBamlTreeBuilder.cs
- ExternalException.cs
- VectorAnimationBase.cs
- DefaultClaimSet.cs
- CacheMemory.cs
- ConnectionManagementElement.cs
- UnsafeNativeMethods.cs
- DataGridViewImageColumn.cs
- IfJoinedCondition.cs
- _WebProxyDataBuilder.cs
- CrossAppDomainChannel.cs
- CommandDesigner.cs
- OpenTypeLayoutCache.cs
- ErrorHandler.cs
- securestring.cs
- sqlstateclientmanager.cs
- ResourceReferenceExpressionConverter.cs
- MouseWheelEventArgs.cs
- SessionStateSection.cs
- TypeConverterHelper.cs
- DetailsViewModeEventArgs.cs
- MexNamedPipeBindingElement.cs
- ExpressionVisitor.cs
- CompositeDispatchFormatter.cs
- HyperLinkField.cs
- ActionMessageFilterTable.cs
- BufferedStream.cs
- FamilyTypeface.cs
- RC2CryptoServiceProvider.cs
- XmlIncludeAttribute.cs
- AnnotationComponentChooser.cs
- ClearCollection.cs
- IQueryable.cs
- Wrapper.cs
- LabelInfo.cs
- Roles.cs
- ItemContainerProviderWrapper.cs
- FixedTextView.cs
- baseaxisquery.cs
- WindowsSspiNegotiation.cs
- EndOfStreamException.cs
- Inline.cs
- DataShape.cs
- FlowDocumentReader.cs
- UndoEngine.cs
- smtppermission.cs
- DataGridViewColumnEventArgs.cs
- AssemblyName.cs
- MenuAutomationPeer.cs
- ProtectedConfiguration.cs
- TypographyProperties.cs
- FixedTextPointer.cs
- ValueType.cs
- GroupLabel.cs
- TemplatedWizardStep.cs
- RadialGradientBrush.cs
- DbgUtil.cs
- DataGridViewImageCell.cs
- DeferredElementTreeState.cs
- ImageCollectionCodeDomSerializer.cs
- odbcmetadatacollectionnames.cs
- base64Transforms.cs
- Int64Animation.cs
- XPathSingletonIterator.cs
- DbCommandDefinition.cs
- KnownBoxes.cs
- SecurityContextTokenCache.cs
- HandlerFactoryCache.cs
- ListenerBinder.cs
- SequentialUshortCollection.cs
- BaseCodePageEncoding.cs
- IItemProperties.cs
- CommandField.cs
- MimeFormatter.cs
- AsymmetricAlgorithm.cs
- CodeAssignStatement.cs
- ValueQuery.cs
- X509Extension.cs
- ConnectionManagementSection.cs
- RowVisual.cs
- CryptoApi.cs
- GraphicsPath.cs