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
- StorageBasedPackageProperties.cs
- WeakRefEnumerator.cs
- HeaderedItemsControl.cs
- UpdateExpressionVisitor.cs
- ObjectDataSource.cs
- ArrayTypeMismatchException.cs
- RequestQueue.cs
- util.cs
- VSWCFServiceContractGenerator.cs
- MethodImplAttribute.cs
- BitmapEditor.cs
- VisualBrush.cs
- QilParameter.cs
- TaskForm.cs
- ImportedNamespaceContextItem.cs
- ServiceDurableInstance.cs
- MatcherBuilder.cs
- ObjectQuery_EntitySqlExtensions.cs
- DefaultParameterValueAttribute.cs
- MenuItemAutomationPeer.cs
- RNGCryptoServiceProvider.cs
- MemberMemberBinding.cs
- XmlSchemaSubstitutionGroup.cs
- PEFileEvidenceFactory.cs
- documentation.cs
- SHA1.cs
- DbConnectionStringBuilder.cs
- IntegrationExceptionEventArgs.cs
- AssemblyBuilderData.cs
- PathData.cs
- StagingAreaInputItem.cs
- EmptyEnumerable.cs
- NotCondition.cs
- Vector3DAnimation.cs
- StringUtil.cs
- WebPartConnectVerb.cs
- SoapElementAttribute.cs
- JsonFormatWriterGenerator.cs
- TextParaLineResult.cs
- AssemblyInfo.cs
- TableLayoutPanel.cs
- Expression.cs
- HostedHttpTransportManager.cs
- TextPattern.cs
- ReturnValue.cs
- DrawTreeNodeEventArgs.cs
- ProfileBuildProvider.cs
- XmlDataContract.cs
- HttpFileCollection.cs
- CollectionEditorDialog.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- RectAnimation.cs
- RemoteTokenFactory.cs
- ToolStripDropDownMenu.cs
- StateMachineWorkflow.cs
- sqlpipe.cs
- AnonymousIdentificationModule.cs
- SoapObjectReader.cs
- RuleRefElement.cs
- XsltArgumentList.cs
- DataGridViewElement.cs
- AssociationTypeEmitter.cs
- HttpSocketManager.cs
- EntityConnection.cs
- SelectingProviderEventArgs.cs
- WebServiceResponse.cs
- Package.cs
- WebHttpBindingCollectionElement.cs
- ExpandableObjectConverter.cs
- SerializationEventsCache.cs
- SizeAnimationUsingKeyFrames.cs
- AQNBuilder.cs
- ItemType.cs
- DesignerHierarchicalDataSourceView.cs
- UnsafeNativeMethods.cs
- SqlNode.cs
- AssignDesigner.xaml.cs
- ChannelManager.cs
- UrlMapping.cs
- MediaContextNotificationWindow.cs
- Int64KeyFrameCollection.cs
- PropertyDescriptor.cs
- EpmHelper.cs
- ADConnectionHelper.cs
- RectangleHotSpot.cs
- QueryResponse.cs
- Int32Collection.cs
- Interlocked.cs
- SelectionEditor.cs
- StringUtil.cs
- Rfc4050KeyFormatter.cs
- CommandSet.cs
- ListItemConverter.cs
- OAVariantLib.cs
- VirtualPath.cs
- PasswordTextNavigator.cs
- LockCookie.cs
- AccessKeyManager.cs
- StylusEditingBehavior.cs
- DataRelation.cs