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
- PowerModeChangedEventArgs.cs
- ValidationPropertyAttribute.cs
- Point3DValueSerializer.cs
- XamlInt32CollectionSerializer.cs
- CryptographicAttribute.cs
- TimeStampChecker.cs
- DataTableReaderListener.cs
- Viewport3DVisual.cs
- HelpHtmlBuilder.cs
- GPRECT.cs
- AccessText.cs
- TypeDependencyAttribute.cs
- DataPagerFieldCollection.cs
- Rect.cs
- CommonProperties.cs
- UTF8Encoding.cs
- QueueSurrogate.cs
- WebConvert.cs
- RemoteWebConfigurationHostServer.cs
- StorageFunctionMapping.cs
- Hashtable.cs
- ExtensibleClassFactory.cs
- ButtonChrome.cs
- InputReferenceExpression.cs
- NumericExpr.cs
- ProfileEventArgs.cs
- webproxy.cs
- DATA_BLOB.cs
- SelectingProviderEventArgs.cs
- PolicyStatement.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- HGlobalSafeHandle.cs
- KnownTypesHelper.cs
- MessageQueuePermission.cs
- RelativeSource.cs
- X509ThumbprintKeyIdentifierClause.cs
- SecurityPermission.cs
- KeyToListMap.cs
- VectorValueSerializer.cs
- ApplicationTrust.cs
- PartialTrustVisibleAssembliesSection.cs
- EntitySqlQueryCacheKey.cs
- DataSourceProvider.cs
- CompositeActivityCodeGenerator.cs
- WindowsListViewItemCheckBox.cs
- XomlDesignerLoader.cs
- Win32SafeHandles.cs
- TextBoxView.cs
- PageHandlerFactory.cs
- DataGridViewCellFormattingEventArgs.cs
- CryptoKeySecurity.cs
- ComponentRenameEvent.cs
- ApplicationTrust.cs
- BitmapEncoder.cs
- NestedContainer.cs
- BamlRecordReader.cs
- PtsHost.cs
- Function.cs
- UriSection.cs
- RectangleConverter.cs
- StatusStrip.cs
- ContentPlaceHolder.cs
- ApplicationSecurityInfo.cs
- RowType.cs
- FrameworkReadOnlyPropertyMetadata.cs
- PasswordTextContainer.cs
- ChildDocumentBlock.cs
- EncryptedType.cs
- ToolTip.cs
- ConfigurationPermission.cs
- NavigationWindow.cs
- UpDownEvent.cs
- KeyEventArgs.cs
- XslTransformFileEditor.cs
- CodeNamespaceCollection.cs
- SqlCacheDependency.cs
- FileUtil.cs
- DetailsViewRow.cs
- SafeBitVector32.cs
- MatrixAnimationUsingKeyFrames.cs
- UpdateException.cs
- RemotingSurrogateSelector.cs
- SqlNamer.cs
- RegexReplacement.cs
- MetadataHelper.cs
- DescendantBaseQuery.cs
- WindowsScrollBar.cs
- SmiEventSink_DeferedProcessing.cs
- ConversionHelper.cs
- CheckBox.cs
- WorkflowFileItem.cs
- UriScheme.cs
- WindowsPen.cs
- BasicKeyConstraint.cs
- DeviceContexts.cs
- EntityKey.cs
- Size3D.cs
- UnsafeNativeMethods.cs
- ExpressionSelection.cs
- ChannelReliableSession.cs