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
- GlobalizationAssembly.cs
- SHA512.cs
- SimplePropertyEntry.cs
- EntityDataSource.cs
- WebPartZone.cs
- Predicate.cs
- SqlSupersetValidator.cs
- SubMenuStyle.cs
- DataGridRowsPresenter.cs
- WsdlInspector.cs
- WebPartVerbCollection.cs
- StringDictionaryWithComparer.cs
- LinqExpressionNormalizer.cs
- RuntimeHelpers.cs
- XmlSchemaAttributeGroupRef.cs
- ObjectItemNoOpAssemblyLoader.cs
- ClientUtils.cs
- ParserContext.cs
- EventData.cs
- Cursor.cs
- RenderData.cs
- Touch.cs
- Marshal.cs
- QueryMatcher.cs
- AttributeCollection.cs
- SqlGenericUtil.cs
- Mutex.cs
- IgnoreFileBuildProvider.cs
- Visual.cs
- WebPartEditorCancelVerb.cs
- GuidelineCollection.cs
- HttpCacheVary.cs
- _NestedMultipleAsyncResult.cs
- ContextDataSourceContextData.cs
- SupportsEventValidationAttribute.cs
- ScriptReference.cs
- XmlStringTable.cs
- ExportException.cs
- SqlMethodAttribute.cs
- CssTextWriter.cs
- ColorMap.cs
- PageAsyncTask.cs
- FreezableOperations.cs
- ChangesetResponse.cs
- ProgressBarHighlightConverter.cs
- GeneralTransform.cs
- FillBehavior.cs
- MobileCategoryAttribute.cs
- EasingKeyFrames.cs
- TextHidden.cs
- Types.cs
- SafeFileMappingHandle.cs
- PersonalizationProvider.cs
- Relationship.cs
- FormViewUpdateEventArgs.cs
- VariableDesigner.xaml.cs
- assertwrapper.cs
- ControlPaint.cs
- Stack.cs
- ThicknessAnimationUsingKeyFrames.cs
- ErrorTableItemStyle.cs
- FlowDocumentReaderAutomationPeer.cs
- TranslateTransform.cs
- TrackingProfileManager.cs
- _LazyAsyncResult.cs
- ClientUtils.cs
- CommandDesigner.cs
- XmlBinaryReader.cs
- XmlDigitalSignatureProcessor.cs
- Int64KeyFrameCollection.cs
- VSWCFServiceContractGenerator.cs
- SQLBinaryStorage.cs
- WmpBitmapDecoder.cs
- dsa.cs
- TraceHwndHost.cs
- NetDispatcherFaultException.cs
- smtppermission.cs
- TextParagraphProperties.cs
- DefaultAssemblyResolver.cs
- path.cs
- AbsoluteQuery.cs
- PartialCachingAttribute.cs
- ProfileService.cs
- WebEventCodes.cs
- SeekStoryboard.cs
- Decorator.cs
- FixedLineResult.cs
- PageTheme.cs
- SqlDataSource.cs
- ContextBase.cs
- IxmlLineInfo.cs
- TextTreeFixupNode.cs
- DataGridTable.cs
- DrawingGroupDrawingContext.cs
- ConstNode.cs
- InstanceCreationEditor.cs
- Screen.cs
- SystemUnicastIPAddressInformation.cs
- UIElementCollection.cs
- AssociationSetEnd.cs