Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / DataSourceUtil.cs / 1305376 / DataSourceUtil.cs
namespace System.Web.DynamicData { using System; using System.Collections.Generic; using System.Globalization; using System.Web.Resources; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; using System.Data; static class DataSourceUtil { private static object s_lock = new object(); private static Dictionarys_typeToTypeCodeMap; internal static TypeCode TypeCodeFromType(Type type) { if (s_typeToTypeCodeMap == null) { lock (s_lock) { if (s_typeToTypeCodeMap == null) { // Dictionary typeNameToTypeCode = new Dictionary (); typeNameToTypeCode[typeof(Boolean)] = TypeCode.Boolean; typeNameToTypeCode[typeof(String)] = TypeCode.String; typeNameToTypeCode[typeof(Byte)] = TypeCode.Byte; typeNameToTypeCode[typeof(Int16)] = TypeCode.Int16; typeNameToTypeCode[typeof(Int32)] = TypeCode.Int32; typeNameToTypeCode[typeof(Int64)] = TypeCode.Int64; typeNameToTypeCode[typeof(Single)] = TypeCode.Single; typeNameToTypeCode[typeof(Double)] = TypeCode.Double; typeNameToTypeCode[typeof(Decimal)] = TypeCode.Decimal; typeNameToTypeCode[typeof(DateTime)] = TypeCode.DateTime; typeNameToTypeCode[typeof(Char)] = TypeCode.Char; // We don't support columns of type 'sqlvariant', which show up as Object // typeNameToTypeCode[typeof(Object)] = TypeCode.DBNull; // We don't support byte arrays. This include columns of type 'timestamp' typeNameToTypeCode[typeof(Byte[])] = TypeCode.DBNull; // Use Object for Guid's (though we need to do some special processing) typeNameToTypeCode[typeof(Guid)] = TypeCode.Object; s_typeToTypeCodeMap = typeNameToTypeCode; } } } // If it's an Nullable , work with T instead type = Misc.RemoveNullableFromType(type); TypeCode typeCode; if (s_typeToTypeCodeMap.TryGetValue(type, out typeCode)) return typeCode; return TypeCode.Object; } internal static void SetParameterTypeCodeAndDbType(Parameter parameter, MetaColumn column) { // If it's a Guid, use a DbType, since TypeCode doesn't support it. For everything else, use TypeCode if (column.ColumnType == typeof(Guid)) { parameter.DbType = DbType.Guid; } else { parameter.Type = column.TypeCode; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Web.DynamicData { using System; using System.Collections.Generic; using System.Globalization; using System.Web.Resources; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; using System.Data; static class DataSourceUtil { private static object s_lock = new object(); private static Dictionary s_typeToTypeCodeMap; internal static TypeCode TypeCodeFromType(Type type) { if (s_typeToTypeCodeMap == null) { lock (s_lock) { if (s_typeToTypeCodeMap == null) { // Dictionary typeNameToTypeCode = new Dictionary (); typeNameToTypeCode[typeof(Boolean)] = TypeCode.Boolean; typeNameToTypeCode[typeof(String)] = TypeCode.String; typeNameToTypeCode[typeof(Byte)] = TypeCode.Byte; typeNameToTypeCode[typeof(Int16)] = TypeCode.Int16; typeNameToTypeCode[typeof(Int32)] = TypeCode.Int32; typeNameToTypeCode[typeof(Int64)] = TypeCode.Int64; typeNameToTypeCode[typeof(Single)] = TypeCode.Single; typeNameToTypeCode[typeof(Double)] = TypeCode.Double; typeNameToTypeCode[typeof(Decimal)] = TypeCode.Decimal; typeNameToTypeCode[typeof(DateTime)] = TypeCode.DateTime; typeNameToTypeCode[typeof(Char)] = TypeCode.Char; // We don't support columns of type 'sqlvariant', which show up as Object // typeNameToTypeCode[typeof(Object)] = TypeCode.DBNull; // We don't support byte arrays. This include columns of type 'timestamp' typeNameToTypeCode[typeof(Byte[])] = TypeCode.DBNull; // Use Object for Guid's (though we need to do some special processing) typeNameToTypeCode[typeof(Guid)] = TypeCode.Object; s_typeToTypeCodeMap = typeNameToTypeCode; } } } // If it's an Nullable , work with T instead type = Misc.RemoveNullableFromType(type); TypeCode typeCode; if (s_typeToTypeCodeMap.TryGetValue(type, out typeCode)) return typeCode; return TypeCode.Object; } internal static void SetParameterTypeCodeAndDbType(Parameter parameter, MetaColumn column) { // If it's a Guid, use a DbType, since TypeCode doesn't support it. For everything else, use TypeCode if (column.ColumnType == typeof(Guid)) { parameter.DbType = DbType.Guid; } else { parameter.Type = column.TypeCode; } } } } // 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
- LogicalMethodInfo.cs
- Bitmap.cs
- XmlValidatingReader.cs
- WindowsAuthenticationEventArgs.cs
- SspiNegotiationTokenAuthenticatorState.cs
- MultipleViewPatternIdentifiers.cs
- EntityContainerAssociationSet.cs
- Serializer.cs
- NavigationPropertyEmitter.cs
- SubMenuStyleCollection.cs
- BrowsableAttribute.cs
- EntityProxyTypeInfo.cs
- TreeNodeBindingDepthConverter.cs
- ElementHostAutomationPeer.cs
- DesignerRegionCollection.cs
- SurrogateEncoder.cs
- MessageQueueConverter.cs
- ReadOnlyAttribute.cs
- MemberListBinding.cs
- ResourceProviderFactory.cs
- XPathExpr.cs
- ArrayTypeMismatchException.cs
- SafeFileMapViewHandle.cs
- BrowserPolicyValidator.cs
- GridViewColumnCollection.cs
- FastEncoder.cs
- ConnectionStringsExpressionBuilder.cs
- ConstructorExpr.cs
- XmlFormatReaderGenerator.cs
- NullEntityWrapper.cs
- DataContractFormatAttribute.cs
- SerializableTypeCodeDomSerializer.cs
- recordstatefactory.cs
- RuleCache.cs
- KeyPressEvent.cs
- CircleHotSpot.cs
- ColumnWidthChangedEvent.cs
- SystemWebExtensionsSectionGroup.cs
- TrustManager.cs
- IDispatchConstantAttribute.cs
- Calendar.cs
- CreatingCookieEventArgs.cs
- WizardSideBarListControlItem.cs
- AccessDataSourceDesigner.cs
- CssClassPropertyAttribute.cs
- DataSourceComponent.cs
- SystemThemeKey.cs
- GeometryGroup.cs
- TypeConverterAttribute.cs
- SqlNode.cs
- ClientTarget.cs
- SwitchElementsCollection.cs
- WizardPanelChangingEventArgs.cs
- HtmlLinkAdapter.cs
- StringConcat.cs
- ContentFilePart.cs
- LineGeometry.cs
- CryptoKeySecurity.cs
- QilXmlWriter.cs
- UITypeEditors.cs
- PrintDocument.cs
- ArrayList.cs
- ExternalException.cs
- MenuDesigner.cs
- WinFormsUtils.cs
- MessagePartDescription.cs
- SamlSecurityTokenAuthenticator.cs
- PersonalizationProviderHelper.cs
- DtdParser.cs
- NCryptSafeHandles.cs
- BindingContext.cs
- TextDecoration.cs
- MultiPropertyDescriptorGridEntry.cs
- SecurityContext.cs
- TrackingStringDictionary.cs
- MessageDesigner.cs
- MultiViewDesigner.cs
- DoubleAnimationUsingKeyFrames.cs
- HashRepartitionStream.cs
- TypeUtils.cs
- CompressionTracing.cs
- LoopExpression.cs
- EventLogEntryCollection.cs
- OleDbParameter.cs
- OrderedDictionary.cs
- PreviewPrintController.cs
- OperationAbortedException.cs
- HttpCachePolicyElement.cs
- MetadataArtifactLoaderFile.cs
- RandomNumberGenerator.cs
- XmlSubtreeReader.cs
- SectionXmlInfo.cs
- AssemblyResolver.cs
- DatePickerDateValidationErrorEventArgs.cs
- PageAdapter.cs
- XmlChildNodes.cs
- BinaryQueryOperator.cs
- FixedSOMImage.cs
- XmlSchemaObjectTable.cs
- DataGridViewCellCollection.cs