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
- FixedTextPointer.cs
- WindowsListViewSubItem.cs
- SoapAttributeAttribute.cs
- PropertySourceInfo.cs
- SqlBulkCopy.cs
- BamlTreeMap.cs
- EncryptedKey.cs
- DataGridViewCellStateChangedEventArgs.cs
- Path.cs
- WeakRefEnumerator.cs
- ConfigurationSchemaErrors.cs
- SurrogateSelector.cs
- WindowsListBox.cs
- SoapExtensionReflector.cs
- TextBoxBase.cs
- FormCollection.cs
- XmlHierarchyData.cs
- ProxyGenerationError.cs
- EntityProviderFactory.cs
- GacUtil.cs
- AnonymousIdentificationModule.cs
- HostProtectionException.cs
- DataSourceXmlSubItemAttribute.cs
- ParameterCollectionEditor.cs
- DrawingGroupDrawingContext.cs
- ArrayExtension.cs
- SqlRowUpdatingEvent.cs
- AuthorizationSection.cs
- BindMarkupExtensionSerializer.cs
- FileUtil.cs
- SizeConverter.cs
- DBSqlParserTableCollection.cs
- SiteMapProvider.cs
- BitHelper.cs
- ControlSerializer.cs
- InvalidOperationException.cs
- HwndSubclass.cs
- GridViewDeletedEventArgs.cs
- XslAstAnalyzer.cs
- UnSafeCharBuffer.cs
- SequentialActivityDesigner.cs
- WebBrowserNavigatingEventHandler.cs
- StructuredTypeEmitter.cs
- LocalServiceSecuritySettings.cs
- CodeSnippetExpression.cs
- EditorPartCollection.cs
- HostProtectionException.cs
- RecordManager.cs
- ServiceAppDomainAssociationProvider.cs
- MemoryPressure.cs
- Animatable.cs
- ConnectionStringsSection.cs
- DataGridViewHitTestInfo.cs
- PenThreadWorker.cs
- TextServicesContext.cs
- ColumnClickEvent.cs
- StringResourceManager.cs
- Executor.cs
- ItemCheckedEvent.cs
- StructuredProperty.cs
- SectionRecord.cs
- ForAllOperator.cs
- AVElementHelper.cs
- LabelAutomationPeer.cs
- SQLByte.cs
- PageThemeParser.cs
- HwndProxyElementProvider.cs
- AuthorizationRuleCollection.cs
- PeerNameRecord.cs
- OutputCacheProfileCollection.cs
- URL.cs
- GridViewUpdateEventArgs.cs
- Transform.cs
- EncodingDataItem.cs
- XslTransform.cs
- X509Chain.cs
- BuildProviderUtils.cs
- CSharpCodeProvider.cs
- TracingConnection.cs
- UnsafeNativeMethods.cs
- DtdParser.cs
- ManagementNamedValueCollection.cs
- ToolBarButton.cs
- LicFileLicenseProvider.cs
- ALinqExpressionVisitor.cs
- CallContext.cs
- PerformanceCounterPermissionAttribute.cs
- PathSegmentCollection.cs
- ColumnResult.cs
- BuildProviderAppliesToAttribute.cs
- Utils.cs
- PtsPage.cs
- LogAppendAsyncResult.cs
- WCFServiceClientProxyGenerator.cs
- StickyNoteHelper.cs
- ConvertEvent.cs
- AssemblyBuilder.cs
- UIntPtr.cs
- InstanceData.cs
- DbConnectionPoolCounters.cs