Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / DataKey.cs / 1305376 / 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
- ImageBrush.cs
- TokenFactoryBase.cs
- ButtonBaseAdapter.cs
- CheckBox.cs
- DrawListViewItemEventArgs.cs
- BitVector32.cs
- WebPartMenuStyle.cs
- ThreadLocal.cs
- PropertyDescriptor.cs
- SchemaCompiler.cs
- OracleConnection.cs
- BoundsDrawingContextWalker.cs
- Menu.cs
- EmbeddedObject.cs
- DotExpr.cs
- unitconverter.cs
- DesignerForm.cs
- ObjectListShowCommandsEventArgs.cs
- WindowHideOrCloseTracker.cs
- AccessDataSourceDesigner.cs
- WsatTransactionHeader.cs
- EventLogPermissionEntry.cs
- DPAPIProtectedConfigurationProvider.cs
- Token.cs
- CodeGeneratorAttribute.cs
- MgmtConfigurationRecord.cs
- PerformanceCounterNameAttribute.cs
- ConfigurationStrings.cs
- EDesignUtil.cs
- Single.cs
- RtfControlWordInfo.cs
- PresentationSource.cs
- RegexCompilationInfo.cs
- XmlSerializerFactory.cs
- UnauthorizedAccessException.cs
- MenuScrollingVisibilityConverter.cs
- XmlBaseReader.cs
- EntitySqlQueryCacheEntry.cs
- TemplateKeyConverter.cs
- TableParaClient.cs
- EditingCoordinator.cs
- QueryServiceConfigHandle.cs
- SkewTransform.cs
- DictionaryEntry.cs
- HierarchicalDataSourceControl.cs
- PointLight.cs
- Maps.cs
- LogSwitch.cs
- TextAnchor.cs
- codemethodreferenceexpression.cs
- TraceEventCache.cs
- SamlAdvice.cs
- FieldAccessException.cs
- GenericWebPart.cs
- LightweightEntityWrapper.cs
- RemotingConfigParser.cs
- DuplicateWaitObjectException.cs
- ObjectParameter.cs
- VerificationAttribute.cs
- PackagePartCollection.cs
- TextParagraphCache.cs
- WinEventTracker.cs
- CustomErrorsSection.cs
- CfgParser.cs
- Panel.cs
- ValueUnavailableException.cs
- Rijndael.cs
- Control.cs
- ExtendedProtectionPolicy.cs
- IncrementalHitTester.cs
- WinHttpWebProxyFinder.cs
- ActivityExecutorSurrogate.cs
- ClientTargetSection.cs
- SchemaElementLookUpTableEnumerator.cs
- Screen.cs
- LayoutEditorPart.cs
- EventProviderWriter.cs
- DataViewListener.cs
- JoinGraph.cs
- PolicyLevel.cs
- ReferenceConverter.cs
- MultipleViewProviderWrapper.cs
- UshortList2.cs
- DrawingState.cs
- SplineKeyFrames.cs
- TagMapInfo.cs
- EncodingStreamWrapper.cs
- Win32Native.cs
- ImportContext.cs
- KeyValueConfigurationCollection.cs
- XmlReflectionImporter.cs
- CodeDirectionExpression.cs
- StreamReader.cs
- LoginViewDesigner.cs
- ProgressChangedEventArgs.cs
- WebPartHeaderCloseVerb.cs
- EntityDataSourceDesignerHelper.cs
- IBuiltInEvidence.cs
- GcHandle.cs
- CultureSpecificStringDictionary.cs