Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- HttpModulesSection.cs
- MessageBox.cs
- Propagator.ExtentPlaceholderCreator.cs
- DateTimeFormat.cs
- ElementMarkupObject.cs
- Size.cs
- LocalTransaction.cs
- COM2ExtendedBrowsingHandler.cs
- AncestorChangedEventArgs.cs
- TargetFrameworkUtil.cs
- ConversionHelper.cs
- SchemaEntity.cs
- CodeMethodInvokeExpression.cs
- EnumUnknown.cs
- _NetworkingPerfCounters.cs
- TransformedBitmap.cs
- connectionpool.cs
- PromptEventArgs.cs
- FormViewDeleteEventArgs.cs
- ExtensionWindowHeader.cs
- StructuralType.cs
- HwndMouseInputProvider.cs
- ViewBox.cs
- ProcessModuleCollection.cs
- AddInController.cs
- WinFormsUtils.cs
- FormsAuthenticationCredentials.cs
- SrgsToken.cs
- FacetChecker.cs
- HtmlButton.cs
- DBSqlParserTable.cs
- HtmlTableCellCollection.cs
- CommonDialog.cs
- Oci.cs
- AdditionalEntityFunctions.cs
- PrincipalPermission.cs
- CommandConverter.cs
- DataContractSet.cs
- HtmlHead.cs
- CompositeActivityTypeDescriptor.cs
- DictionarySurrogate.cs
- CodeSnippetStatement.cs
- Context.cs
- PartitionResolver.cs
- TiffBitmapEncoder.cs
- ListChangedEventArgs.cs
- AdornedElementPlaceholder.cs
- ProgressBarBrushConverter.cs
- MessageDecoder.cs
- ObjectSecurity.cs
- DynamicValidator.cs
- Label.cs
- XamlReaderHelper.cs
- RequestCacheManager.cs
- TheQuery.cs
- TimelineClockCollection.cs
- Mapping.cs
- ListChunk.cs
- KnownTypesProvider.cs
- TypeListConverter.cs
- RenderData.cs
- XmlIgnoreAttribute.cs
- Stylus.cs
- DBConcurrencyException.cs
- MultiView.cs
- storepermissionattribute.cs
- CodePrimitiveExpression.cs
- Directory.cs
- ProvidersHelper.cs
- ToolStripContentPanel.cs
- OperandQuery.cs
- ContractBase.cs
- Utils.cs
- NameObjectCollectionBase.cs
- NumberSubstitution.cs
- ValidatedMobileControlConverter.cs
- CompositeActivityTypeDescriptorProvider.cs
- DataGridViewTopLeftHeaderCell.cs
- XmlAttributeAttribute.cs
- MimeImporter.cs
- X509ChainPolicy.cs
- ComNativeDescriptor.cs
- TextEditorTables.cs
- CodeNamespaceImport.cs
- BamlLocalizableResource.cs
- StandardTransformFactory.cs
- ToolStripTemplateNode.cs
- ObjectDataSourceDisposingEventArgs.cs
- XPathNodeInfoAtom.cs
- XmlWhitespace.cs
- File.cs
- DataGridViewColumnCollection.cs
- DoubleAnimationUsingPath.cs
- SecurityKeyIdentifier.cs
- WebPartEditorCancelVerb.cs
- ApplyTemplatesAction.cs
- CircleHotSpot.cs
- XPathDocumentIterator.cs
- DataBoundControlHelper.cs
- SqlDataSourceCache.cs