Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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.] ///// 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
- BitmapEffectRenderDataResource.cs
- AuthenticationConfig.cs
- ColorAnimation.cs
- ExceptionUtility.cs
- XmlReflectionMember.cs
- InvalidProgramException.cs
- Padding.cs
- SecurityContext.cs
- XhtmlBasicSelectionListAdapter.cs
- CodeAttachEventStatement.cs
- PointLight.cs
- CounterCreationData.cs
- CmsUtils.cs
- GridSplitterAutomationPeer.cs
- ReferenceService.cs
- PerformanceCounterTraceRecord.cs
- DetailsViewCommandEventArgs.cs
- BitVector32.cs
- CompilerCollection.cs
- WebServiceErrorEvent.cs
- recordstatescratchpad.cs
- NamedPipeWorkerProcess.cs
- DesignerActionHeaderItem.cs
- ComponentDispatcher.cs
- CornerRadius.cs
- RolePrincipal.cs
- DocComment.cs
- SqlDataReaderSmi.cs
- XomlCompilerError.cs
- ConfigXmlComment.cs
- StateChangeEvent.cs
- ReadOnlyDataSource.cs
- UnsafeNativeMethods.cs
- HttpRequestContext.cs
- ParseNumbers.cs
- InternalConfigRoot.cs
- ObjectDisposedException.cs
- GridViewRowEventArgs.cs
- CodeEventReferenceExpression.cs
- StreamInfo.cs
- BroadcastEventHelper.cs
- RegexInterpreter.cs
- ResourcesBuildProvider.cs
- MenuItemBindingCollection.cs
- Menu.cs
- MetadataPropertyvalue.cs
- ExecutedRoutedEventArgs.cs
- TableItemPattern.cs
- XXXInfos.cs
- GradientStop.cs
- EnumValidator.cs
- SerializationInfoEnumerator.cs
- CompleteWizardStep.cs
- ArgumentDesigner.xaml.cs
- FamilyTypefaceCollection.cs
- DbParameterHelper.cs
- DataSourceCache.cs
- UIAgentInitializationException.cs
- CharEntityEncoderFallback.cs
- SqlGenericUtil.cs
- MailMessageEventArgs.cs
- SettingsSection.cs
- Brush.cs
- DetailsViewUpdateEventArgs.cs
- Base64Encoder.cs
- SimpleHandlerBuildProvider.cs
- DataGridViewRowsRemovedEventArgs.cs
- EmptyControlCollection.cs
- DecodeHelper.cs
- GridViewCancelEditEventArgs.cs
- RegexFCD.cs
- ConfigPathUtility.cs
- WebScriptMetadataFormatter.cs
- CommandArguments.cs
- Ticks.cs
- FileNotFoundException.cs
- PersistenceException.cs
- ToolStripPanelDesigner.cs
- PropertyCollection.cs
- VisualStyleElement.cs
- DmlSqlGenerator.cs
- ThicknessAnimation.cs
- WindowsAuthenticationModule.cs
- Version.cs
- ButtonAutomationPeer.cs
- SecurityDocument.cs
- HashStream.cs
- OrderedDictionary.cs
- Point3DAnimation.cs
- SortExpressionBuilder.cs
- SpeechRecognitionEngine.cs
- ComponentFactoryHelpers.cs
- PeerToPeerException.cs
- Camera.cs
- SqlCommandSet.cs
- InputDevice.cs
- SmiRequestExecutor.cs
- HeaderedContentControl.cs
- ToolStripItemClickedEventArgs.cs
- RedBlackList.cs