Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- Mouse.cs
- ArraySubsetEnumerator.cs
- CustomTypeDescriptor.cs
- Encoder.cs
- VisualStyleInformation.cs
- Floater.cs
- WCFServiceClientProxyGenerator.cs
- FormsAuthenticationUser.cs
- TypeGenericEnumerableViewSchema.cs
- ProcessHost.cs
- HiddenFieldPageStatePersister.cs
- CompilationUtil.cs
- Event.cs
- StandardBindingImporter.cs
- TranslateTransform.cs
- datacache.cs
- EventProxy.cs
- CatalogZoneAutoFormat.cs
- SqlBooleanMismatchVisitor.cs
- ReturnEventArgs.cs
- SerializationInfoEnumerator.cs
- MimeTypeAttribute.cs
- GlobalizationSection.cs
- SecurityElement.cs
- ColorAnimationUsingKeyFrames.cs
- XPathConvert.cs
- InvalidEnumArgumentException.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- FreezableDefaultValueFactory.cs
- BlockUIContainer.cs
- XamlTreeBuilderBamlRecordWriter.cs
- EventToken.cs
- XDeferredAxisSource.cs
- ColorMatrix.cs
- CachedPathData.cs
- Bitmap.cs
- ContractsBCL.cs
- WorkflowMarkupElementEventArgs.cs
- WaitHandle.cs
- Misc.cs
- XmlWhitespace.cs
- EntityDataSourceChangingEventArgs.cs
- KeySplineConverter.cs
- StaticExtension.cs
- ContractListAdapter.cs
- Number.cs
- ContextMenuStripGroup.cs
- RuleSetDialog.cs
- PropertyTab.cs
- ScriptIgnoreAttribute.cs
- TextCharacters.cs
- dataobject.cs
- PasswordTextContainer.cs
- ProcessHostServerConfig.cs
- StdValidatorsAndConverters.cs
- JavaScriptObjectDeserializer.cs
- WorkflowApplicationCompletedEventArgs.cs
- XmlBinaryReader.cs
- ListDictionaryInternal.cs
- MenuItemStyleCollection.cs
- SplitterDesigner.cs
- DeclarativeCatalogPart.cs
- CheckBoxAutomationPeer.cs
- PropertyOverridesDialog.cs
- MethodToken.cs
- XPathSelfQuery.cs
- SpeechSynthesizer.cs
- SqlParameterizer.cs
- PreviewPrintController.cs
- SqlGenericUtil.cs
- KeyValueSerializer.cs
- DataGridViewCellLinkedList.cs
- BitmapEffectDrawing.cs
- FileCodeGroup.cs
- HuffmanTree.cs
- OleDbConnectionInternal.cs
- SingleKeyFrameCollection.cs
- ReadOnlyPermissionSet.cs
- cryptoapiTransform.cs
- TypeListConverter.cs
- Missing.cs
- LocationReferenceEnvironment.cs
- HttpListener.cs
- TemplateBaseAction.cs
- XpsImage.cs
- ReflectEventDescriptor.cs
- SymLanguageVendor.cs
- BrowserDefinition.cs
- CodeMemberMethod.cs
- DataGridViewComboBoxColumn.cs
- WindowInteractionStateTracker.cs
- Underline.cs
- ProcessModelInfo.cs
- BindingsCollection.cs
- VirtualPathData.cs
- XmlSerializerNamespaces.cs
- BindUriHelper.cs
- SmtpCommands.cs
- UnsafeNativeMethods.cs
- PropertyToken.cs