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
- ActivityBindForm.Designer.cs
- BaseCodePageEncoding.cs
- DynamicDataExtensions.cs
- SystemIcons.cs
- FileDetails.cs
- DataControlReference.cs
- MaskedTextProvider.cs
- DrawingImage.cs
- XmlResolver.cs
- RadioButtonRenderer.cs
- XmlBinaryReader.cs
- SevenBitStream.cs
- SystemIcmpV6Statistics.cs
- EventLogPermissionAttribute.cs
- sqlinternaltransaction.cs
- SizeIndependentAnimationStorage.cs
- WmpBitmapDecoder.cs
- AssertFilter.cs
- SchemaComplexType.cs
- mediaeventargs.cs
- ReturnEventArgs.cs
- TextWriterTraceListener.cs
- DetailsViewInsertEventArgs.cs
- TextRunProperties.cs
- BulletedListDesigner.cs
- QueryCacheKey.cs
- SynchronizationLockException.cs
- Command.cs
- SHA256.cs
- Pts.cs
- RowUpdatingEventArgs.cs
- FragmentQueryProcessor.cs
- ObjectNotFoundException.cs
- BitmapFrame.cs
- QueryResult.cs
- XMLSyntaxException.cs
- MDIControlStrip.cs
- ApplicationHost.cs
- InfoCardCryptoHelper.cs
- CurrencyWrapper.cs
- MethodRental.cs
- GZipStream.cs
- Point3DAnimationUsingKeyFrames.cs
- MulticastNotSupportedException.cs
- CapabilitiesRule.cs
- ObjectViewListener.cs
- StickyNoteAnnotations.cs
- TextRangeBase.cs
- BinaryObjectInfo.cs
- DbMetaDataFactory.cs
- CodeSubDirectory.cs
- BindingGroup.cs
- TemplatedWizardStep.cs
- TemplateBindingExpressionConverter.cs
- BitmapVisualManager.cs
- ObjectDataSourceSelectingEventArgs.cs
- WorkflowPrinting.cs
- UnsafeNativeMethods.cs
- LayoutEditorPart.cs
- StorageRoot.cs
- DeclarativeCatalogPart.cs
- DataConnectionHelper.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- VerbConverter.cs
- mil_sdk_version.cs
- SourceFilter.cs
- ReturnEventArgs.cs
- SqlBuilder.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- ConfigurationStrings.cs
- CodeDesigner.cs
- RegistrationServices.cs
- ListViewCommandEventArgs.cs
- FindCriteria11.cs
- XmlSchemaInclude.cs
- DBSqlParser.cs
- XmlElement.cs
- AssemblyNameProxy.cs
- StyleXamlParser.cs
- WhitespaceRuleReader.cs
- MimeMultiPart.cs
- Baml2006ReaderContext.cs
- HttpDictionary.cs
- MSAANativeProvider.cs
- HashStream.cs
- ZipFileInfoCollection.cs
- MimeAnyImporter.cs
- WebExceptionStatus.cs
- WorkItem.cs
- ListBindingConverter.cs
- SessionStateModule.cs
- FamilyCollection.cs
- DoubleAnimationBase.cs
- AvTraceFormat.cs
- TabRenderer.cs
- NumberSubstitution.cs
- GetCryptoTransformRequest.cs
- TextEditorTables.cs
- DataGridViewRow.cs
- TextEffectCollection.cs