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
- SiteMapNodeCollection.cs
- ListMarkerSourceInfo.cs
- VisualTreeUtils.cs
- ElapsedEventArgs.cs
- Parameter.cs
- EmptyWithCancelationCheckWorkItem.cs
- ProvidersHelper.cs
- KeysConverter.cs
- ImageDrawing.cs
- RepeaterCommandEventArgs.cs
- HwndSourceParameters.cs
- ServiceHostingEnvironment.cs
- FixedPageStructure.cs
- Vertex.cs
- PageContent.cs
- OleDbFactory.cs
- SerializationAttributes.cs
- TextRenderingModeValidation.cs
- SqlClientPermission.cs
- InputLanguage.cs
- ConfigurationStrings.cs
- AnnotationHelper.cs
- XamlStream.cs
- ChangeConflicts.cs
- RowUpdatingEventArgs.cs
- ReadOnlyDataSource.cs
- PageVisual.cs
- DataSourceConverter.cs
- RotationValidation.cs
- GregorianCalendar.cs
- MatchingStyle.cs
- unsafenativemethodstextservices.cs
- MobileComponentEditorPage.cs
- CodePageUtils.cs
- Transform.cs
- AddingNewEventArgs.cs
- Rotation3DAnimationBase.cs
- InfoCardCryptoHelper.cs
- SqlNode.cs
- CommonProperties.cs
- DtdParser.cs
- FileEnumerator.cs
- WeakReadOnlyCollection.cs
- DesignerTransactionCloseEvent.cs
- DataGridAutoFormat.cs
- Marshal.cs
- TextModifierScope.cs
- DataGridColumn.cs
- PseudoWebRequest.cs
- StdValidatorsAndConverters.cs
- BinHexEncoder.cs
- ReadOnlyCollectionBase.cs
- FilterQuery.cs
- DrawingAttributesDefaultValueFactory.cs
- ExpressionStringBuilder.cs
- XmlStringTable.cs
- Update.cs
- AnnotationObservableCollection.cs
- ImageCodecInfo.cs
- SimpleHandlerFactory.cs
- WorkerRequest.cs
- Button.cs
- path.cs
- InlineObject.cs
- TextEffect.cs
- TableCellAutomationPeer.cs
- XXXInfos.cs
- PartitionResolver.cs
- DataKeyCollection.cs
- PasswordTextContainer.cs
- ResourceReferenceExpression.cs
- WebSysDisplayNameAttribute.cs
- EntitySetBase.cs
- XmlWriterSettings.cs
- ByteViewer.cs
- ECDiffieHellman.cs
- Point3DCollectionConverter.cs
- DateTimeOffsetAdapter.cs
- GridViewUpdateEventArgs.cs
- ResourceDictionary.cs
- EntityDataSourceState.cs
- ScriptResourceInfo.cs
- StatusBar.cs
- SchemaImporter.cs
- FileDialogCustomPlace.cs
- AttachmentCollection.cs
- FixedDocumentSequencePaginator.cs
- ImportContext.cs
- OrderPreservingPipeliningSpoolingTask.cs
- RuleSettingsCollection.cs
- ExpressionBuilder.cs
- DataGridViewComboBoxColumn.cs
- ForeignKeyFactory.cs
- TypedElement.cs
- ManagementPath.cs
- Pen.cs
- iisPickupDirectory.cs
- Hex.cs
- WasEndpointConfigContainer.cs
- ListSourceHelper.cs