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
- Html32TextWriter.cs
- FilteredSchemaElementLookUpTable.cs
- UpDownBase.cs
- SspiSafeHandles.cs
- RTLAwareMessageBox.cs
- SafePEFileHandle.cs
- EntityTypeEmitter.cs
- HierarchicalDataBoundControl.cs
- WorkflowRuntimeService.cs
- ServiceDeploymentInfo.cs
- SystemInformation.cs
- LayoutTable.cs
- BinaryExpression.cs
- ConnectionStringsSection.cs
- ToolConsole.cs
- BaseCodePageEncoding.cs
- StringUtil.cs
- EncoderNLS.cs
- TextSegment.cs
- MDIClient.cs
- IPAddress.cs
- _ConnectStream.cs
- StringArrayConverter.cs
- EncoderParameter.cs
- PermissionRequestEvidence.cs
- SqlDelegatedTransaction.cs
- TdsParserStaticMethods.cs
- ResourceReferenceExpressionConverter.cs
- ItemDragEvent.cs
- DataObjectPastingEventArgs.cs
- RtfToXamlReader.cs
- XPathDescendantIterator.cs
- ToolStripScrollButton.cs
- EntityDescriptor.cs
- DataBindingExpressionBuilder.cs
- AtomMaterializerLog.cs
- ServiceModelConfigurationSection.cs
- MemberAccessException.cs
- HwndSource.cs
- SQLResource.cs
- SimpleExpression.cs
- DataContractSet.cs
- AppDomainUnloadedException.cs
- httpstaticobjectscollection.cs
- documentsequencetextview.cs
- ClaimComparer.cs
- Funcletizer.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ActivityAction.cs
- CompareValidator.cs
- DbUpdateCommandTree.cs
- SqlUserDefinedTypeAttribute.cs
- DateTimeValueSerializer.cs
- Version.cs
- GenericWebPart.cs
- PropertyEntry.cs
- DateTimeFormatInfo.cs
- GeometryConverter.cs
- ScrollBar.cs
- NullableDoubleAverageAggregationOperator.cs
- DataContractJsonSerializer.cs
- SchemaMapping.cs
- RangeValuePattern.cs
- RSAProtectedConfigurationProvider.cs
- XmlIlGenerator.cs
- RIPEMD160.cs
- TraceSection.cs
- SafeHandle.cs
- DecodeHelper.cs
- StrongName.cs
- FloaterParagraph.cs
- UpdateTracker.cs
- FontDifferentiator.cs
- RoleGroup.cs
- SafeHandles.cs
- ElementsClipboardData.cs
- DataListItem.cs
- IsolationInterop.cs
- SourceSwitch.cs
- LineServices.cs
- PopupEventArgs.cs
- SiteMapNode.cs
- CurrencyManager.cs
- DtdParser.cs
- ConfigurationSectionGroup.cs
- FontFamily.cs
- DataRowChangeEvent.cs
- WriteLine.cs
- DbConvert.cs
- XmlUtilWriter.cs
- FontDifferentiator.cs
- DataGridColumnHeadersPresenter.cs
- ToolBarButton.cs
- IconBitmapDecoder.cs
- CellParaClient.cs
- IsolatedStorageSecurityState.cs
- RootBrowserWindow.cs
- EventInfo.cs
- IQueryable.cs
- AssemblyCacheEntry.cs