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
- MappedMetaModel.cs
- StdValidatorsAndConverters.cs
- ZoneButton.cs
- ReadOnlyHierarchicalDataSource.cs
- UserControlFileEditor.cs
- AutoCompleteStringCollection.cs
- HttpListenerContext.cs
- BlockExpression.cs
- OperationCanceledException.cs
- IDReferencePropertyAttribute.cs
- FileNotFoundException.cs
- OracleCommandSet.cs
- SynchronizationLockException.cs
- TextBreakpoint.cs
- CodeAttributeDeclaration.cs
- ListBoxAutomationPeer.cs
- ApplicationId.cs
- LineGeometry.cs
- InvalidDataException.cs
- RegexGroupCollection.cs
- UdpSocket.cs
- QilReference.cs
- RuntimeHandles.cs
- HttpCachePolicyElement.cs
- Privilege.cs
- BindingEntityInfo.cs
- DbConnectionPool.cs
- DataGridTablesFactory.cs
- RootAction.cs
- ProvidersHelper.cs
- SemanticResolver.cs
- PrintingPermission.cs
- ServiceBuildProvider.cs
- CellTreeNode.cs
- WebPartConnectionsDisconnectVerb.cs
- QilTargetType.cs
- StringArrayEditor.cs
- DynamicExpression.cs
- LightweightEntityWrapper.cs
- CodeDefaultValueExpression.cs
- TextPattern.cs
- DbConnectionPoolGroup.cs
- FileLevelControlBuilderAttribute.cs
- CompilationUtil.cs
- EdmEntityTypeAttribute.cs
- SchemaDeclBase.cs
- MenuCommandService.cs
- GlyphInfoList.cs
- StylusButton.cs
- Schema.cs
- ServiceModelActivity.cs
- CompoundFileIOPermission.cs
- TriggerCollection.cs
- GenericWebPart.cs
- XPathScanner.cs
- Shape.cs
- DataGridViewRowPostPaintEventArgs.cs
- FixedSOMFixedBlock.cs
- ClassicBorderDecorator.cs
- ClientSettings.cs
- EnumValidator.cs
- RegisteredArrayDeclaration.cs
- ObjectIDGenerator.cs
- XamlWriter.cs
- CssStyleCollection.cs
- NamespaceCollection.cs
- ComponentChangingEvent.cs
- Timer.cs
- CallTemplateAction.cs
- CatalogPart.cs
- ToolStripSplitButton.cs
- ConstNode.cs
- NavigationService.cs
- WsdlImporterElement.cs
- InteropBitmapSource.cs
- ToolStripHighContrastRenderer.cs
- AuthorizationRuleCollection.cs
- smtpconnection.cs
- SQLString.cs
- DbModificationClause.cs
- FieldTemplateUserControl.cs
- SiteMapProvider.cs
- NonVisualControlAttribute.cs
- WebServiceResponseDesigner.cs
- _LazyAsyncResult.cs
- TypedDataSourceCodeGenerator.cs
- UnsafeNativeMethods.cs
- MessageFault.cs
- FieldMetadata.cs
- FtpCachePolicyElement.cs
- AddressHeaderCollection.cs
- ParameterModifier.cs
- HttpCacheVaryByContentEncodings.cs
- ComboBox.cs
- Viewport3DVisual.cs
- RichTextBoxContextMenu.cs
- ObjectDataSourceStatusEventArgs.cs
- X509ChainElement.cs
- DataGridItem.cs
- EncryptedPackage.cs