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
- WpfXamlLoader.cs
- Italic.cs
- HandledEventArgs.cs
- ColumnMapProcessor.cs
- OleDbDataReader.cs
- QilInvokeLateBound.cs
- ParallelEnumerableWrapper.cs
- TextCompositionManager.cs
- Range.cs
- bidPrivateBase.cs
- TypeLibConverter.cs
- DeploymentSectionCache.cs
- DispatcherHookEventArgs.cs
- TimeoutHelper.cs
- MethodToken.cs
- Italic.cs
- BinaryObjectInfo.cs
- FileVersionInfo.cs
- assemblycache.cs
- TagNameToTypeMapper.cs
- GlobalItem.cs
- SqlDataReaderSmi.cs
- CqlLexer.cs
- XmlCharType.cs
- ContextCorrelationInitializer.cs
- FrameSecurityDescriptor.cs
- EntityModelSchemaGenerator.cs
- mda.cs
- ReachPrintTicketSerializerAsync.cs
- AnnotationResourceCollection.cs
- OracleString.cs
- FunctionParameter.cs
- CodeDirectoryCompiler.cs
- DataServiceConfiguration.cs
- OrderedDictionary.cs
- SQLDoubleStorage.cs
- XmlSiteMapProvider.cs
- OneOfTypeConst.cs
- DiscreteKeyFrames.cs
- SqlDataSourceQuery.cs
- NonBatchDirectoryCompiler.cs
- PackWebRequest.cs
- LoginView.cs
- ContentWrapperAttribute.cs
- TerminatorSinks.cs
- FontInfo.cs
- WebBrowserUriTypeConverter.cs
- ImageAttributes.cs
- ADConnectionHelper.cs
- InvalidEnumArgumentException.cs
- Ray3DHitTestResult.cs
- HandleTable.cs
- XmlDataSourceView.cs
- VisualTarget.cs
- SmtpNtlmAuthenticationModule.cs
- AnnotationMap.cs
- DesignBindingConverter.cs
- SqlConnectionString.cs
- ToolTipAutomationPeer.cs
- PreservationFileWriter.cs
- StylusPointProperty.cs
- NetDispatcherFaultException.cs
- XmlUtf8RawTextWriter.cs
- ValidationHelpers.cs
- HtmlElementEventArgs.cs
- InstanceDataCollection.cs
- MetadataPropertyAttribute.cs
- OptimizerPatterns.cs
- ChildTable.cs
- PropertyValueChangedEvent.cs
- SqlServices.cs
- HandleRef.cs
- OptimalTextSource.cs
- ParseChildrenAsPropertiesAttribute.cs
- PersonalizableAttribute.cs
- SoapTypeAttribute.cs
- UntypedNullExpression.cs
- ChameleonKey.cs
- CodeGroup.cs
- SocketException.cs
- dataprotectionpermissionattribute.cs
- OrderPreservingPipeliningMergeHelper.cs
- CompiledQueryCacheEntry.cs
- ToolBarTray.cs
- PeerNameRecord.cs
- DataContext.cs
- ContextStaticAttribute.cs
- ColorContextHelper.cs
- COM2FontConverter.cs
- XamlFigureLengthSerializer.cs
- UnmanagedMarshal.cs
- DesigntimeLicenseContext.cs
- ChildTable.cs
- BamlRecords.cs
- SoapAttributeOverrides.cs
- ToolStripButton.cs
- WebConfigurationHostFileChange.cs
- base64Transforms.cs
- XmlCompatibilityReader.cs
- SqlUserDefinedAggregateAttribute.cs