Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- AttributeCollection.cs
- TextEditorCopyPaste.cs
- CompilerCollection.cs
- OleDbRowUpdatingEvent.cs
- BatchServiceHost.cs
- DiagnosticsConfigurationHandler.cs
- InkSerializer.cs
- SoapEnumAttribute.cs
- VerificationAttribute.cs
- isolationinterop.cs
- cryptoapiTransform.cs
- DBCSCodePageEncoding.cs
- WebHttpBindingCollectionElement.cs
- Hash.cs
- WpfPayload.cs
- MetadataLocation.cs
- ListBindableAttribute.cs
- _IPv4Address.cs
- smtppermission.cs
- XmlQueryCardinality.cs
- DataGridViewRowsRemovedEventArgs.cs
- ComProxy.cs
- MaskedTextProvider.cs
- CodeDesigner.cs
- WebServiceTypeData.cs
- AttachmentCollection.cs
- AssemblySettingAttributes.cs
- InitializerFacet.cs
- CommandArguments.cs
- LayoutEditorPart.cs
- XsltCompileContext.cs
- ThemeDictionaryExtension.cs
- BaseServiceProvider.cs
- DataSourceControlBuilder.cs
- XmlExtensionFunction.cs
- DbParameterCollectionHelper.cs
- ConfigurationManagerHelper.cs
- XmlDownloadManager.cs
- RelationshipConverter.cs
- SspiSafeHandles.cs
- DynamicDataManager.cs
- MailDefinition.cs
- TextAutomationPeer.cs
- TdsParameterSetter.cs
- Vector3DCollectionConverter.cs
- HtmlFormWrapper.cs
- StateManager.cs
- UInt32.cs
- XmlUtil.cs
- SafeBitVector32.cs
- DynamicResourceExtension.cs
- ToolStripItemGlyph.cs
- Psha1DerivedKeyGenerator.cs
- SizeIndependentAnimationStorage.cs
- WCFBuildProvider.cs
- XmlRootAttribute.cs
- NameSpaceExtractor.cs
- WebServiceErrorEvent.cs
- RoutedEventValueSerializer.cs
- TextEditorLists.cs
- SecureConversationSecurityTokenParameters.cs
- ChannelTerminatedException.cs
- PrintingPermissionAttribute.cs
- Int64Storage.cs
- CodeComment.cs
- BlockUIContainer.cs
- TransformationRules.cs
- DPAPIProtectedConfigurationProvider.cs
- FloatAverageAggregationOperator.cs
- GlyphManager.cs
- StylusPointPropertyId.cs
- MimePart.cs
- CleanUpVirtualizedItemEventArgs.cs
- LinkTarget.cs
- RenderData.cs
- XmlSchemaSet.cs
- AnimationClockResource.cs
- HtmlHead.cs
- MissingMemberException.cs
- SystemInfo.cs
- Stackframe.cs
- TextProperties.cs
- SingleTagSectionHandler.cs
- LambdaCompiler.Expressions.cs
- ResourceSet.cs
- GridLengthConverter.cs
- SmiGettersStream.cs
- TableAdapterManagerHelper.cs
- TextEmbeddedObject.cs
- remotingproxy.cs
- IssuanceTokenProviderState.cs
- XmlQueryStaticData.cs
- DomNameTable.cs
- MediaEntryAttribute.cs
- AsymmetricSecurityBindingElement.cs
- ControlPaint.cs
- SmiRecordBuffer.cs
- RepeaterDataBoundAdapter.cs
- SqlFlattener.cs
- FilterableAttribute.cs