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
- FixedHighlight.cs
- MarshalByRefObject.cs
- Crc32.cs
- DeviceSpecificDesigner.cs
- ColumnHeader.cs
- Frame.cs
- ListViewUpdatedEventArgs.cs
- DataControlPagerLinkButton.cs
- PropertyEmitter.cs
- Util.cs
- TripleDESCryptoServiceProvider.cs
- AnonymousIdentificationModule.cs
- TrackingMemoryStream.cs
- XmlSortKey.cs
- FontCacheLogic.cs
- SiteMap.cs
- ColumnClickEvent.cs
- ComplusEndpointConfigContainer.cs
- XmlSchemaInferenceException.cs
- ObfuscationAttribute.cs
- GridItemCollection.cs
- Win32.cs
- DataViewSetting.cs
- ReceiveActivityValidator.cs
- RealizationContext.cs
- SerializableAuthorizationContext.cs
- RunWorkerCompletedEventArgs.cs
- CodeLinePragma.cs
- WrapPanel.cs
- ImagingCache.cs
- ComplexObject.cs
- EntityContainerEmitter.cs
- RangeExpression.cs
- CommandBindingCollection.cs
- LogRecordSequence.cs
- XamlFigureLengthSerializer.cs
- Matrix.cs
- WebPartEditVerb.cs
- ExpressionPrefixAttribute.cs
- PersonalizationState.cs
- WebInvokeAttribute.cs
- BuildDependencySet.cs
- PagePropertiesChangingEventArgs.cs
- AddInServer.cs
- TypeDependencyAttribute.cs
- WithParamAction.cs
- SimpleTypesSurrogate.cs
- FileNotFoundException.cs
- DesignerTransaction.cs
- SignerInfo.cs
- FontFaceLayoutInfo.cs
- Pkcs7Recipient.cs
- SkewTransform.cs
- AutomationPropertyInfo.cs
- LOSFormatter.cs
- TemplateBindingExpressionConverter.cs
- MobileErrorInfo.cs
- MergeFilterQuery.cs
- XsdBuildProvider.cs
- ClientApiGenerator.cs
- FontStretches.cs
- SelectionWordBreaker.cs
- TextTreeRootTextBlock.cs
- SecurityState.cs
- SettingsProviderCollection.cs
- BitmapEditor.cs
- TickBar.cs
- AncestorChangedEventArgs.cs
- RelationshipType.cs
- BehaviorDragDropEventArgs.cs
- SoapIncludeAttribute.cs
- IChannel.cs
- TypedServiceOperationListItem.cs
- ProfessionalColors.cs
- XPathNodeIterator.cs
- FusionWrap.cs
- IntellisenseTextBox.designer.cs
- SqlAggregateChecker.cs
- _NtlmClient.cs
- BamlReader.cs
- ItemDragEvent.cs
- WindowsListView.cs
- ToolboxItem.cs
- XslCompiledTransform.cs
- ServiceAppDomainAssociationProvider.cs
- DelayedRegex.cs
- DialogResultConverter.cs
- SchemaNamespaceManager.cs
- EventManager.cs
- Material.cs
- SystemIcons.cs
- Shared.cs
- CryptoStream.cs
- TreeViewImageIndexConverter.cs
- TextSelection.cs
- SQLInt16.cs
- InternalDispatchObject.cs
- _NestedSingleAsyncResult.cs
- CodeTypeReferenceCollection.cs
- WindowsTooltip.cs