Code:
/ 4.0 / 4.0 / untmp / 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 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
- GridItemPattern.cs
- ChildrenQuery.cs
- WebRequestModuleElementCollection.cs
- XPathItem.cs
- WebResponse.cs
- ObjectAnimationBase.cs
- ServiceDescriptionImporter.cs
- EventArgs.cs
- UserInitiatedNavigationPermission.cs
- ConnectionProviderAttribute.cs
- XmlSchemaAttributeGroupRef.cs
- FigureParaClient.cs
- Button.cs
- Point3DCollectionValueSerializer.cs
- AutomationIdentifierGuids.cs
- ExceptionNotification.cs
- StringConverter.cs
- ScrollChrome.cs
- Keyboard.cs
- FirewallWrapper.cs
- SeekStoryboard.cs
- IndexOutOfRangeException.cs
- ControlBuilder.cs
- __Filters.cs
- DrawingAttributeSerializer.cs
- EventRecord.cs
- RenderDataDrawingContext.cs
- Line.cs
- FrameworkReadOnlyPropertyMetadata.cs
- InstanceKeyCompleteException.cs
- HostedImpersonationContext.cs
- JournalEntryListConverter.cs
- LoadGrammarCompletedEventArgs.cs
- ParallelActivityDesigner.cs
- FlagsAttribute.cs
- AsyncResult.cs
- StartUpEventArgs.cs
- LinqDataSourceContextData.cs
- PenThreadPool.cs
- InkPresenter.cs
- XmlC14NWriter.cs
- KeyGestureValueSerializer.cs
- DataGridViewSelectedRowCollection.cs
- ObjectView.cs
- MemberMaps.cs
- GatewayDefinition.cs
- XsltSettings.cs
- ValueType.cs
- GenericFlowSwitchHelper.cs
- UnionCodeGroup.cs
- SliderAutomationPeer.cs
- ScriptingRoleServiceSection.cs
- SoapException.cs
- ZoneLinkButton.cs
- ManualResetEventSlim.cs
- FeatureSupport.cs
- ProfileProvider.cs
- LinqDataSource.cs
- PbrsForward.cs
- LicenseProviderAttribute.cs
- Variant.cs
- RecognitionResult.cs
- DSASignatureFormatter.cs
- VirtualDirectoryMapping.cs
- BigInt.cs
- DesignParameter.cs
- CustomWebEventKey.cs
- Bits.cs
- LayoutEngine.cs
- XpsDocumentEvent.cs
- BitConverter.cs
- DirtyTextRange.cs
- RequestSecurityTokenResponse.cs
- SoapAttributeAttribute.cs
- ExpressionHelper.cs
- ImageFormat.cs
- PreservationFileWriter.cs
- StylusCaptureWithinProperty.cs
- TaskSchedulerException.cs
- XmlQueryOutput.cs
- TemplateControl.cs
- DescendantQuery.cs
- UrlMapping.cs
- KeyEventArgs.cs
- TraceLog.cs
- SortedDictionary.cs
- FontSourceCollection.cs
- RecognizerStateChangedEventArgs.cs
- ToolStripOverflow.cs
- Ipv6Element.cs
- HandlerBase.cs
- ModelItemCollectionImpl.cs
- XmlSchemaAttributeGroup.cs
- cache.cs
- WinFormsComponentEditor.cs
- SyntaxCheck.cs
- UnitySerializationHolder.cs
- AuthorizationSection.cs
- MimeMultiPart.cs
- Dump.cs