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
- ViewStateModeByIdAttribute.cs
- SystemColorTracker.cs
- HtmlProps.cs
- BidOverLoads.cs
- RawStylusInputCustomData.cs
- TemplateBamlTreeBuilder.cs
- ReadOnlyHierarchicalDataSource.cs
- BlockUIContainer.cs
- Single.cs
- CollectionDataContract.cs
- ACL.cs
- MimeBasePart.cs
- UnmanagedMarshal.cs
- SqlDataSourceCustomCommandPanel.cs
- DBBindings.cs
- CodeBinaryOperatorExpression.cs
- webbrowsersite.cs
- AttributeTableBuilder.cs
- BitmapEffectInput.cs
- BitmapDownload.cs
- DataTemplate.cs
- WindowsScrollBarBits.cs
- DataServiceKeyAttribute.cs
- PropertyPathWorker.cs
- _NtlmClient.cs
- LoginName.cs
- XamlDebuggerXmlReader.cs
- SecurityElement.cs
- ValidationHelpers.cs
- CqlErrorHelper.cs
- SoapInteropTypes.cs
- DiscoveryClientElement.cs
- AxisAngleRotation3D.cs
- httpapplicationstate.cs
- SymmetricAlgorithm.cs
- CodeBlockBuilder.cs
- ActivityTypeCodeDomSerializer.cs
- ToolBarButtonClickEvent.cs
- ExceptionUtil.cs
- PassportAuthentication.cs
- JavaScriptString.cs
- DocumentPage.cs
- UndoManager.cs
- RoutedCommand.cs
- SQLUtility.cs
- DataSourceView.cs
- CalendarButtonAutomationPeer.cs
- BaseDataListActionList.cs
- WebCodeGenerator.cs
- XPathLexer.cs
- DataSet.cs
- oledbmetadatacollectionnames.cs
- FormViewDeletedEventArgs.cs
- ScriptServiceAttribute.cs
- DefaultPrintController.cs
- FrameworkElementAutomationPeer.cs
- COM2FontConverter.cs
- XamlToRtfWriter.cs
- StaticExtensionConverter.cs
- HtmlInputPassword.cs
- LinearQuaternionKeyFrame.cs
- CustomTypeDescriptor.cs
- ClientData.cs
- ExclusiveTcpListener.cs
- QilVisitor.cs
- KeyPullup.cs
- WebPartExportVerb.cs
- BitVector32.cs
- KeyProperty.cs
- FontDriver.cs
- GiveFeedbackEventArgs.cs
- ElementMarkupObject.cs
- RowsCopiedEventArgs.cs
- BooleanToVisibilityConverter.cs
- AttachedProperty.cs
- DrawTreeNodeEventArgs.cs
- TextTreeInsertUndoUnit.cs
- WindowsIPAddress.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- CallSite.cs
- SqlDataSourceFilteringEventArgs.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- QilExpression.cs
- ScopedMessagePartSpecification.cs
- Base64Encoder.cs
- InputMethod.cs
- EntityKey.cs
- _AutoWebProxyScriptEngine.cs
- GridViewColumnHeader.cs
- MappingItemCollection.cs
- DependencyPropertyChangedEventArgs.cs
- Mappings.cs
- FeatureSupport.cs
- QuotedPrintableStream.cs
- JsonServiceDocumentSerializer.cs
- Menu.cs
- PagesSection.cs
- WebReference.cs
- ItemsControlAutomationPeer.cs
- CustomExpressionEventArgs.cs