Code:
/ 4.0 / 4.0 / 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.] ///// 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
- TableRowGroup.cs
- RowUpdatedEventArgs.cs
- DynamicRendererThreadManager.cs
- DataGridPagerStyle.cs
- IWorkflowDebuggerService.cs
- ListSortDescription.cs
- SweepDirectionValidation.cs
- ProgressBar.cs
- Opcode.cs
- Rect.cs
- CodeAssignStatement.cs
- SubqueryTrackingVisitor.cs
- Margins.cs
- TextProperties.cs
- ForeignConstraint.cs
- ManagementInstaller.cs
- FixedSOMTableRow.cs
- SharedStream.cs
- ForwardPositionQuery.cs
- UpWmlPageAdapter.cs
- ShadowGlyph.cs
- StringSorter.cs
- NumberFormatter.cs
- PointLightBase.cs
- SynchronousChannelMergeEnumerator.cs
- RegexCaptureCollection.cs
- SqlNotificationEventArgs.cs
- EntitySqlQueryState.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ImageCollectionEditor.cs
- ProgressBarRenderer.cs
- StateWorkerRequest.cs
- SerializationException.cs
- SqlErrorCollection.cs
- ServiceModelExtensionElement.cs
- ProgramNode.cs
- AvtEvent.cs
- EdmType.cs
- AutoCompleteStringCollection.cs
- ContextMenuService.cs
- CachedBitmap.cs
- MouseEventArgs.cs
- OLEDB_Util.cs
- _NetRes.cs
- PropertyRecord.cs
- Listbox.cs
- FilteredDataSetHelper.cs
- SwitchAttribute.cs
- ResourcesBuildProvider.cs
- LinkDesigner.cs
- Sequence.cs
- ObjectRef.cs
- ChangeConflicts.cs
- PropertyTabChangedEvent.cs
- DataControlReference.cs
- TargetControlTypeCache.cs
- ToolStripItemRenderEventArgs.cs
- Delegate.cs
- selecteditemcollection.cs
- DbConnectionPoolOptions.cs
- NetworkCredential.cs
- AsyncContentLoadedEventArgs.cs
- TableCell.cs
- ConnectionPoint.cs
- CurrencyWrapper.cs
- OdbcInfoMessageEvent.cs
- WebPartCollection.cs
- RoleManagerSection.cs
- CanonicalFontFamilyReference.cs
- FileLogRecordHeader.cs
- ObjectPersistData.cs
- DataMemberConverter.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- HttpListenerException.cs
- BinaryUtilClasses.cs
- TransactionFlowProperty.cs
- PointAnimationUsingKeyFrames.cs
- ApplicationManager.cs
- SpeechSeg.cs
- DateRangeEvent.cs
- ChangePassword.cs
- LocatorPart.cs
- ProtocolElementCollection.cs
- CustomDictionarySources.cs
- ObjectDataSourceChooseTypePanel.cs
- PnrpPermission.cs
- XmlILIndex.cs
- IconConverter.cs
- SynchronizationContext.cs
- SqlBinder.cs
- BoundField.cs
- FloatAverageAggregationOperator.cs
- PropertyValueEditor.cs
- Polygon.cs
- _IPv4Address.cs
- safelink.cs
- StringExpressionSet.cs
- CSharpCodeProvider.cs
- AliasedSlot.cs