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
- XmlArrayAttribute.cs
- ValidationPropertyAttribute.cs
- RSAPKCS1SignatureFormatter.cs
- StreamWithDictionary.cs
- CancellationTokenSource.cs
- EntityDataSourceView.cs
- MaskDesignerDialog.cs
- XdrBuilder.cs
- LeafCellTreeNode.cs
- MobilePage.cs
- HitTestParameters3D.cs
- ClipboardData.cs
- StateMachineSubscription.cs
- PreviewControlDesigner.cs
- CommandSet.cs
- XPathNodeHelper.cs
- XPathNavigator.cs
- SqlDataSourceTableQuery.cs
- XpsFontSubsetter.cs
- AssociatedControlConverter.cs
- NamespaceCollection.cs
- WebPartDisplayMode.cs
- SystemIcons.cs
- DateTimeOffset.cs
- RoleBoolean.cs
- PopupEventArgs.cs
- ScrollableControl.cs
- MultitargetUtil.cs
- IntSecurity.cs
- XmlSerializationGeneratedCode.cs
- Hashtable.cs
- CollectionTraceRecord.cs
- WeakReference.cs
- DesignerSerializationVisibilityAttribute.cs
- Form.cs
- DurableInstance.cs
- DefaultBindingPropertyAttribute.cs
- BitmapInitialize.cs
- MetadataItemEmitter.cs
- WebZone.cs
- BaseParaClient.cs
- HyperLink.cs
- TextSchema.cs
- BatchParser.cs
- RichTextBox.cs
- ADMembershipUser.cs
- DynamicControlParameter.cs
- X509ImageLogo.cs
- itemelement.cs
- LayoutEngine.cs
- ParenthesizePropertyNameAttribute.cs
- RequestCacheEntry.cs
- Point3DAnimation.cs
- UnicastIPAddressInformationCollection.cs
- COAUTHINFO.cs
- WindowsListViewItem.cs
- TreeNodeEventArgs.cs
- StaticExtensionConverter.cs
- EntityDataSourceStatementEditorForm.cs
- SchemaElement.cs
- SHA1CryptoServiceProvider.cs
- Compiler.cs
- PropertyEntry.cs
- GridViewHeaderRowPresenter.cs
- RotateTransform.cs
- ClientSettingsProvider.cs
- DropSourceBehavior.cs
- BuildManager.cs
- CodeDirectoryCompiler.cs
- DefaultMemberAttribute.cs
- PropertyContainer.cs
- WebPartUtil.cs
- Comparer.cs
- ButtonBase.cs
- ClientConfigPaths.cs
- InvalidPrinterException.cs
- DeleteMemberBinder.cs
- OperationValidationEventArgs.cs
- TiffBitmapDecoder.cs
- EntityDataSourceView.cs
- PageAsyncTask.cs
- storepermission.cs
- CustomMenuItemCollection.cs
- ButtonChrome.cs
- Util.cs
- DispatcherObject.cs
- MoveSizeWinEventHandler.cs
- DesignerSerializerAttribute.cs
- ThrowHelper.cs
- PropertyInfo.cs
- TableItemStyle.cs
- ActivityTypeDesigner.xaml.cs
- MailWriter.cs
- SelfIssuedSamlTokenFactory.cs
- ToolStripStatusLabel.cs
- DesignTimeHTMLTextWriter.cs
- MetadataArtifactLoaderCompositeResource.cs
- TransformCryptoHandle.cs
- EdmConstants.cs
- WorkflowCompensationBehavior.cs