Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / Common / DBSchemaRow.cs / 1 / DBSchemaRow.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- namespace System.Data.Common { using System; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Globalization; sealed internal class DbSchemaRow { internal const string SchemaMappingUnsortedIndex = "SchemaMapping Unsorted Index"; DbSchemaTable schemaTable; DataRow dataRow; static internal DbSchemaRow[] GetSortedSchemaRows(DataTable dataTable, bool returnProviderSpecificTypes) { // MDAC 60609 DataColumn sortindex= dataTable.Columns[SchemaMappingUnsortedIndex]; if (null == sortindex) { // WebData 100390 sortindex = new DataColumn(SchemaMappingUnsortedIndex, typeof(Int32)); // MDAC 67050 dataTable.Columns.Add(sortindex); } int count = dataTable.Rows.Count; for (int i = 0; i < count; ++i) { dataTable.Rows[i][sortindex] = i; }; DbSchemaTable schemaTable = new DbSchemaTable(dataTable, returnProviderSpecificTypes); const DataViewRowState rowStates = DataViewRowState.Unchanged | DataViewRowState.Added | DataViewRowState.ModifiedCurrent; DataRow[] dataRows = dataTable.Select(null, "ColumnOrdinal ASC", rowStates); Debug.Assert(null != dataRows, "GetSchemaRows: unexpected null dataRows"); DbSchemaRow[] schemaRows = new DbSchemaRow[dataRows.Length]; for (int i = 0; i < dataRows.Length; ++i) { schemaRows[i] = new DbSchemaRow(schemaTable, dataRows[i]); } return schemaRows; } internal DbSchemaRow(DbSchemaTable schemaTable, DataRow dataRow) { this.schemaTable = schemaTable; this.dataRow = dataRow; } internal DataRow DataRow { get { return dataRow; } } internal string ColumnName { get { Debug.Assert(null != schemaTable.ColumnName, "no column ColumnName"); object value = dataRow[schemaTable.ColumnName, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToString(value, CultureInfo.InvariantCulture); } return ""; } /*set { Debug.Assert(null != schemaTable.ColumnName, "missing column ColumnName"); dataRow[schemaTable.ColumnName] = value; }*/ } //internal Int32 Ordinal { /*get { Debug.Assert(null != schemaTable.Ordinal, "no column Ordinal"); return Convert.ToInt32(dataRow[schemaTable.Ordinal, DataRowVersion.Default], CultureInfo.InvariantCulture); }*/ /*set { Debug.Assert(null != schemaTable.Ordinal, "missing column Ordinal"); dataRow[schemaTable.Ordinal] = value; }*/ //} internal Int32 Size { get { Debug.Assert(null != schemaTable.Size, "no column Size"); object value = dataRow[schemaTable.Size, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToInt32(value, CultureInfo.InvariantCulture); } return 0; } /*set { Debug.Assert(null != schemaTable.Size, "missing column Size"); dataRow[schemaTable.Size] = value; }*/ } internal string BaseColumnName { get { if (null != schemaTable.BaseColumnName) { object value = dataRow[schemaTable.BaseColumnName, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToString(value, CultureInfo.InvariantCulture); } } return ""; } /*set { Debug.Assert(null != schemaTable.BaseColumnName, "missing column BaseColumnName"); dataRow[schemaTable.BaseColumnName] = value; }*/ } internal string BaseServerName { get { if (null != schemaTable.BaseServerName) { object value = dataRow[schemaTable.BaseServerName, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToString(value, CultureInfo.InvariantCulture); } } return ""; } /*set { Debug.Assert(null != schemaTable.BaseServerName, "missing column BaseServerName"); dataRow[schemaTable.BaseServerName] = value; }*/ } internal string BaseCatalogName { get { if (null != schemaTable.BaseCatalogName) { object value = dataRow[schemaTable.BaseCatalogName, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToString(value, CultureInfo.InvariantCulture); } } return ""; } /*set { Debug.Assert(null != schemaTable.BaseCatalogName, "missing column BaseCatalogName"); dataRow[schemaTable.BaseCatalogName] = value; }*/ } internal string BaseSchemaName { get { if (null != schemaTable.BaseSchemaName) { object value = dataRow[schemaTable.BaseSchemaName, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToString(value, CultureInfo.InvariantCulture); } } return ""; } /*set { Debug.Assert(null != schemaTable.BaseSchemaName, "missing column BaseSchemaName"); dataRow[schemaTable.BaseSchemaName] = value; }*/ } internal string BaseTableName { get { if (null != schemaTable.BaseTableName) { object value = dataRow[schemaTable.BaseTableName, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToString(value, CultureInfo.InvariantCulture); } } return ""; } /*set { Debug.Assert(null != schemaTable.BaseTableName, "missing column BaseTableName"); dataRow[schemaTable.BaseTableName] = value; }*/ } internal bool IsAutoIncrement { get { if (null != schemaTable.IsAutoIncrement) { object value = dataRow[schemaTable.IsAutoIncrement, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsAutoIncrement, "missing column IsAutoIncrement"); dataRow[schemaTable.IsAutoIncrement] = (bool)value; }*/ } internal bool IsUnique { get { if (null != schemaTable.IsUnique) { object value = dataRow[schemaTable.IsUnique, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsUnique, "missing column IsUnique"); dataRow[schemaTable.IsUnique] = (bool)value; }*/ } internal bool IsRowVersion { get { if (null != schemaTable.IsRowVersion) { object value = dataRow[schemaTable.IsRowVersion, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsRowVersion, "missing column IsRowVersion"); dataRow[schemaTable.IsRowVersion] = value; }*/ } internal bool IsKey { get { if (null != schemaTable.IsKey) { object value = dataRow[schemaTable.IsKey, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsKey, "missing column IsKey"); dataRow[schemaTable.IsKey] = value; }*/ } // consider: just do comparison directly -> (object)(baseColumnName) == (object)(columnName) //internal bool IsAliased { /*get { if (null != schemaTable.IsAliased) { // MDAC 62336 object value = dataRow[schemaTable.IsAliased, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; }*/ /*set { Debug.Assert(null != schemaTable.IsAliased, "missing column IsAliased"); dataRow[schemaTable.IsAliased] = value; }*/ //} internal bool IsExpression { get { if (null != schemaTable.IsExpression) { // MDAC 62336 object value = dataRow[schemaTable.IsExpression, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsExpression, "missing column IsExpression"); dataRow[schemaTable.IsExpression] = value; }*/ } //internal bool IsIdentity { /*get { if (null != schemaTable.IsIdentity) { // MDAC 62336 object value = dataRow[schemaTable.IsIdentity, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; }*/ /*set { Debug.Assert(null != schemaTable.IsIdentity, "missing column IsIdentity"); dataRow[schemaTable.IsIdentity] = value; }*/ //} internal bool IsHidden { get { if (null != schemaTable.IsHidden) { // MDAC 62336 object value = dataRow[schemaTable.IsHidden, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsHidden, "missing column IsHidden"); dataRow[schemaTable.IsHidden] = value; }*/ } internal bool IsLong { get { if (null != schemaTable.IsLong) { // MDAC 62336 object value = dataRow[schemaTable.IsLong, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsLong, "missing column IsHidden"); dataRow[schemaTable.IsLong] = value; }*/ } internal bool IsReadOnly { get { if (null != schemaTable.IsReadOnly) { // MDAC 62336 object value = dataRow[schemaTable.IsReadOnly, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return false; } /*set { Debug.Assert(null != schemaTable.IsReadOnly, "missing column IsReadOnly"); dataRow[schemaTable.IsReadOnly] = value; }*/ } internal System.Type DataType { get { if (null != schemaTable.DataType) { object value = dataRow[schemaTable.DataType, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return(System.Type) value; } } return null; } /*set { Debug.Assert(null != schemaTable.DataType, "missing column DataType"); dataRow[schemaTable.DataType] = value; }*/ } internal bool AllowDBNull { get { if (null != schemaTable.AllowDBNull) { object value = dataRow[schemaTable.AllowDBNull, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToBoolean(value, CultureInfo.InvariantCulture); } } return true; } /*set { Debug.Assert(null != schemaTable.AllowDBNull, "missing column MaybeNull"); dataRow[schemaTable.AllowDBNull] = value; }*/ } /*internal Int32 ProviderType { get { if (null != schemaTable.ProviderType) { object value = dataRow[schemaTable.ProviderType, DataRowVersion.Default]; if (!Convert.IsDBNull(value)) { return Convert.ToInt32(value); } } return 0; } set { Debug.Assert(null != schemaTable.ProviderType, "missing column ProviderType"); dataRow[schemaTable.ProviderType] = value; } }*/ internal Int32 UnsortedIndex { get { return (Int32) dataRow[schemaTable.UnsortedIndex, DataRowVersion.Default]; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolboxItemLoader.cs
- ProtocolsSection.cs
- ContainerParaClient.cs
- EmbeddedMailObject.cs
- SingleAnimation.cs
- ResourceWriter.cs
- BitmapEffectGroup.cs
- SqlProvider.cs
- WebPartConnectionsCancelVerb.cs
- DerivedKeySecurityTokenStub.cs
- OdbcCommand.cs
- ToolZone.cs
- HwndSourceKeyboardInputSite.cs
- TreeNodeCollectionEditor.cs
- StyleBamlRecordReader.cs
- SqlBinder.cs
- SimpleRecyclingCache.cs
- RSACryptoServiceProvider.cs
- DoubleLinkList.cs
- DataSetViewSchema.cs
- ToolStripManager.cs
- MetadataSerializer.cs
- VSWCFServiceContractGenerator.cs
- InheritanceContextChangedEventManager.cs
- HierarchicalDataBoundControl.cs
- HttpResponseInternalBase.cs
- KeySplineConverter.cs
- BaseDataListComponentEditor.cs
- GeometryDrawing.cs
- SoapFault.cs
- CodeSubDirectoriesCollection.cs
- DataTableReaderListener.cs
- DbConnectionPoolIdentity.cs
- _RequestCacheProtocol.cs
- FrameworkContentElement.cs
- CodeArrayIndexerExpression.cs
- GridViewPageEventArgs.cs
- TdsParser.cs
- WindowsStatusBar.cs
- URLEditor.cs
- FontWeightConverter.cs
- ObjectStateEntryDbDataRecord.cs
- CookieProtection.cs
- ApplicationBuildProvider.cs
- GetImportFileNameRequest.cs
- EventSetterHandlerConverter.cs
- SafeViewOfFileHandle.cs
- TypeUtils.cs
- StreamAsIStream.cs
- ToolCreatedEventArgs.cs
- DataSourceControlBuilder.cs
- MessageQueueTransaction.cs
- ConstructorNeedsTagAttribute.cs
- MonitorWrapper.cs
- WindowsStatusBar.cs
- SafeBitVector32.cs
- RSAOAEPKeyExchangeFormatter.cs
- _DomainName.cs
- DoubleLinkList.cs
- TripleDES.cs
- XsltException.cs
- BufferedResponseStream.cs
- DesignerForm.cs
- ContentType.cs
- DbMetaDataFactory.cs
- FixedSOMTableCell.cs
- CreateDataSourceDialog.cs
- InteropTrackingRecord.cs
- WpfPayload.cs
- AffineTransform3D.cs
- DeferredReference.cs
- JoinGraph.cs
- BuildProvider.cs
- AutomationIdentifierGuids.cs
- RequestUriProcessor.cs
- ObjectDataProvider.cs
- FormParameter.cs
- RtType.cs
- entitydatasourceentitysetnameconverter.cs
- HelpProvider.cs
- CombinedGeometry.cs
- ConnectionStringsSection.cs
- TimeSpanFormat.cs
- Operator.cs
- IImplicitResourceProvider.cs
- PassportAuthentication.cs
- RegexParser.cs
- FileDetails.cs
- DnsPermission.cs
- Vector3DAnimationBase.cs
- TextBlockAutomationPeer.cs
- WSSecureConversation.cs
- PageAdapter.cs
- XmlSchemaAttributeGroup.cs
- BitmapScalingModeValidation.cs
- ControlParser.cs
- UIElement.cs
- ResXResourceSet.cs
- IPipelineRuntime.cs
- SchemaContext.cs