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
- EntityClientCacheKey.cs
- GradientBrush.cs
- CryptoStream.cs
- PreviewKeyDownEventArgs.cs
- ColorTranslator.cs
- GeneralTransformCollection.cs
- XmlElement.cs
- SafeBuffer.cs
- ComplexObject.cs
- MsmqHostedTransportManager.cs
- Tracer.cs
- XslTransform.cs
- COM2ColorConverter.cs
- Error.cs
- XmlCharacterData.cs
- CacheMode.cs
- XamlWriter.cs
- TextServicesCompartmentEventSink.cs
- HtmlInputControl.cs
- QilGenerator.cs
- SafeHandles.cs
- CommonDialog.cs
- ObjectKeyFrameCollection.cs
- BitmapEffectGroup.cs
- TextDocumentView.cs
- NativeWindow.cs
- StrokeRenderer.cs
- NameValuePair.cs
- ObjectDataSource.cs
- ChangeDirector.cs
- HttpPostedFileWrapper.cs
- RegexInterpreter.cs
- ListView.cs
- AsyncCompletedEventArgs.cs
- ThemeConfigurationDialog.cs
- WindowsListViewSubItem.cs
- RequestSecurityTokenResponse.cs
- ManagedCodeMarkers.cs
- PaintEvent.cs
- x509utils.cs
- ConfigPathUtility.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- IssuanceLicense.cs
- XmlAttributeCollection.cs
- ParagraphResult.cs
- ServiceThrottle.cs
- NetSectionGroup.cs
- ObjectItemNoOpAssemblyLoader.cs
- PersonalizationState.cs
- MemberRelationshipService.cs
- DelimitedListTraceListener.cs
- ConfigXmlAttribute.cs
- ResumeStoryboard.cs
- ViewKeyConstraint.cs
- MemberCollection.cs
- TransformCollection.cs
- DateTimeUtil.cs
- DbConnectionPoolGroup.cs
- DrawListViewItemEventArgs.cs
- InstanceKeyCollisionException.cs
- DataTableReaderListener.cs
- PerspectiveCamera.cs
- ObjectAnimationUsingKeyFrames.cs
- DetailsView.cs
- MemberAccessException.cs
- SqlProviderManifest.cs
- CacheOutputQuery.cs
- ServiceModelEnumValidatorAttribute.cs
- MimeWriter.cs
- HostedHttpRequestAsyncResult.cs
- FontStyles.cs
- ConfigPathUtility.cs
- XmlObjectSerializerWriteContextComplex.cs
- SafeArrayTypeMismatchException.cs
- AdornedElementPlaceholder.cs
- TreeViewItem.cs
- regiisutil.cs
- TextRangeEdit.cs
- RegionInfo.cs
- WebPartZoneCollection.cs
- StringConcat.cs
- PageRanges.cs
- Tablet.cs
- MetadataUtilsSmi.cs
- MethodRental.cs
- MiniParameterInfo.cs
- SafeRightsManagementSessionHandle.cs
- BamlVersionHeader.cs
- HttpGetServerProtocol.cs
- ContextDataSourceView.cs
- CompilationUtil.cs
- RequestCachingSection.cs
- BaseComponentEditor.cs
- QuadraticBezierSegment.cs
- DictionaryEntry.cs
- SqlProviderServices.cs
- ValueType.cs
- PackWebResponse.cs
- FontDifferentiator.cs
- SessionParameter.cs