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
- OpenFileDialog.cs
- AutomationProperty.cs
- HuffmanTree.cs
- EventLogPermissionEntry.cs
- WinEventHandler.cs
- serverconfig.cs
- SoapAttributeAttribute.cs
- GridViewItemAutomationPeer.cs
- MimeTypeAttribute.cs
- RightsManagementEncryptedStream.cs
- keycontainerpermission.cs
- XmlException.cs
- DataGridTextBox.cs
- PixelFormats.cs
- X509Certificate2.cs
- RuntimeCompatibilityAttribute.cs
- CodeMemberMethod.cs
- InternalBase.cs
- ConfigurationHandlersInstallComponent.cs
- GridLength.cs
- FirstMatchCodeGroup.cs
- Padding.cs
- Scanner.cs
- RandomNumberGenerator.cs
- XPathScanner.cs
- TextRenderer.cs
- Camera.cs
- UniqueIdentifierService.cs
- EventSetter.cs
- DataTemplate.cs
- TemplateField.cs
- FtpCachePolicyElement.cs
- Light.cs
- SchemaCreator.cs
- HttpPostedFile.cs
- AssemblyHash.cs
- DataServices.cs
- KeyEvent.cs
- TraceSwitch.cs
- InvokePattern.cs
- WizardStepBase.cs
- WSIdentityFaultException.cs
- GridToolTip.cs
- VBIdentifierNameEditor.cs
- DataGridItem.cs
- Rect3D.cs
- PageEventArgs.cs
- GraphicsState.cs
- InvalidCommandTreeException.cs
- cookieexception.cs
- AssemblyCacheEntry.cs
- WindowInteractionStateTracker.cs
- SizeAnimation.cs
- MeshGeometry3D.cs
- NoneExcludedImageIndexConverter.cs
- MeshGeometry3D.cs
- ObjectViewEntityCollectionData.cs
- HtmlShimManager.cs
- unsafenativemethodstextservices.cs
- SmiConnection.cs
- BaseCAMarshaler.cs
- baseshape.cs
- FormsAuthenticationTicket.cs
- HttpConfigurationContext.cs
- Scripts.cs
- StandardCommands.cs
- PreProcessInputEventArgs.cs
- ElementProxy.cs
- WebBrowser.cs
- GetWorkflowTree.cs
- QilList.cs
- ApplicationGesture.cs
- SHA512Managed.cs
- ScrollProviderWrapper.cs
- QueryCursorEventArgs.cs
- ConsoleCancelEventArgs.cs
- DataSysAttribute.cs
- ServiceMemoryGates.cs
- TextEditorLists.cs
- SessionEndingEventArgs.cs
- Update.cs
- BulletedListDesigner.cs
- SmiEventSink.cs
- SystemGatewayIPAddressInformation.cs
- CryptoStream.cs
- TabControl.cs
- NativeCppClassAttribute.cs
- RequestResponse.cs
- Journaling.cs
- InternalConfigConfigurationFactory.cs
- SBCSCodePageEncoding.cs
- ShaderRenderModeValidation.cs
- ClientSession.cs
- WebPartEditorCancelVerb.cs
- ConnectionStringsExpressionEditor.cs
- hwndwrapper.cs
- StoryFragments.cs
- OutputCacheProfile.cs
- MyContact.cs
- ObjectViewEntityCollectionData.cs