Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / System / data / design / TypeConvertions.cs / 2 / TypeConvertions.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All Rights Reserved. // Information Contained Herein is Proprietary and Confidential. // //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.Data.SqlTypes; namespace System.Data.Design { internal enum OleDbParameterDirection { // OLE DB parameter directions Input = 0x01, InputOutput = 0x02, Output = 0x03, ReturnValue = 0x04 } internal enum OleDbDataType { // OLE DB data types adEmpty = 0x0, adTinyInt = 0x10, adSmallInt = 0x2, adInteger = 0x3, adBigInt = 0x14, adUnsignedTinyInt = 0x11, adUnsignedSmallInt = 0x12, adUnsignedInt = 0x13, adUnsignedBigInt = 0x15, adSingle = 0x4, adDouble = 0x5, adCurrency = 0x6, adDecimal = 0xE, adNumeric = 0x83, adBoolean = 0xB, adError = 0xA, adUserDefined = 0x84, adVariant = 0xC, adIDispatch = 0x9, adIUnknown = 0xD, adGUID = 0x48, adDate = 0x7, adDBDate = 0x85, adDBTime = 0x86, adDBTimeStamp = 0x87, adBSTR = 0x08, adChar = 0x81, adVarChar = 0xC8, adLongVarChar = 0xC9, adWChar = 0x82, adVarWChar = 0xCA, adLongVarWChar = 0xCB, adBinary = 0x80, adVarBinary = 0xCC, adLongVarBinary = 0xCD, adChapter = 0x88, adFileTime = 0x40, adPropVariant = 0x8A, adVarNumeric = 0x8B, adArray = 0x2000 } ////// Summary description for TypeConvertions. /// internal class TypeConvertions { ////// Private contstructor to avoid class being instantiated. /// private TypeConvertions() { } private static int[] oleDbToAdoPlusDirectionMap = new int[] { (int) OleDbParameterDirection.Input, (int) ParameterDirection.Input, (int) OleDbParameterDirection.InputOutput, (int) ParameterDirection.InputOutput, (int) OleDbParameterDirection.Output, (int) ParameterDirection.Output, (int) OleDbParameterDirection.ReturnValue, (int) ParameterDirection.ReturnValue }; private static int[] oleDbTypeToDbTypeMap = new int[] { (int) OleDbDataType.adBSTR, (int) DbType.AnsiString, (int) OleDbDataType.adBigInt, (int) DbType.Int64, (int) OleDbDataType.adBinary, (int) DbType.Binary, (int) OleDbDataType.adBoolean, (int) DbType.Boolean, (int) OleDbDataType.adChar, (int) DbType.AnsiString, (int) OleDbDataType.adCurrency, (int) DbType.Currency, (int) OleDbDataType.adDate, (int) DbType.Date, (int) OleDbDataType.adDBDate, (int) DbType.Date, (int) OleDbDataType.adDBTime, (int) DbType.DateTime, (int) OleDbDataType.adDBTimeStamp, (int) DbType.DateTime, (int) OleDbDataType.adDecimal, (int) DbType.Decimal, (int) OleDbDataType.adDouble, (int) DbType.Double, (int) OleDbDataType.adEmpty, (int) DbType.Object, (int) OleDbDataType.adError, (int) DbType.Object, (int) OleDbDataType.adFileTime, (int) DbType.DateTime, (int) OleDbDataType.adGUID, (int) DbType.Guid, (int) OleDbDataType.adIDispatch, (int) DbType.Object, (int) OleDbDataType.adIUnknown, (int) DbType.Object, (int) OleDbDataType.adInteger, (int) DbType.Int32, (int) OleDbDataType.adLongVarBinary, (int) DbType.Binary, (int) OleDbDataType.adLongVarChar, (int) DbType.AnsiString, (int) OleDbDataType.adLongVarWChar, (int) DbType.String, (int) OleDbDataType.adNumeric, (int) DbType.Decimal, (int) OleDbDataType.adPropVariant, (int) DbType.Object, (int) OleDbDataType.adSingle, (int) DbType.Single, (int) OleDbDataType.adSmallInt, (int) DbType.Int16, (int) OleDbDataType.adTinyInt, (int) DbType.SByte, (int) OleDbDataType.adUnsignedBigInt, (int) DbType.UInt64, (int) OleDbDataType.adUnsignedInt, (int) DbType.UInt32, (int) OleDbDataType.adUnsignedSmallInt, (int) DbType.UInt16, (int) OleDbDataType.adUnsignedTinyInt, (int) DbType.Byte, (int) OleDbDataType.adVarBinary, (int) DbType.Binary, (int) OleDbDataType.adVarChar, (int) DbType.AnsiString, (int) OleDbDataType.adVarNumeric, (int) DbType.VarNumeric, (int) OleDbDataType.adVarWChar, (int) DbType.String, (int) OleDbDataType.adVariant, (int) DbType.Object, (int) OleDbDataType.adWChar, (int) DbType.String }; private static object[] sqlTypeToSqlDbTypeMap = new object[] { typeof(SqlBinary), SqlDbType.Binary, typeof(SqlInt64), SqlDbType.BigInt, typeof(SqlBoolean), SqlDbType.Bit, typeof(SqlString), SqlDbType.Char, typeof(SqlDateTime), SqlDbType.DateTime, typeof(SqlDecimal), SqlDbType.Decimal, typeof(SqlDouble), SqlDbType.Float, typeof(SqlBinary), SqlDbType.Image, typeof(SqlInt32), SqlDbType.Int, typeof(SqlMoney), SqlDbType.Money, typeof(SqlString), SqlDbType.NChar, typeof(SqlString), SqlDbType.NText, typeof(SqlString), SqlDbType.NVarChar, typeof(SqlSingle), SqlDbType.Real, typeof(SqlDateTime), SqlDbType.SmallDateTime, typeof(SqlInt16), SqlDbType.SmallInt, typeof(SqlMoney), SqlDbType.SmallMoney, typeof(Object), SqlDbType.Variant, typeof(SqlString), SqlDbType.VarChar, typeof(SqlString), SqlDbType.Text, typeof(SqlBinary), SqlDbType.Timestamp, typeof(SqlByte), SqlDbType.TinyInt, typeof(SqlBinary), SqlDbType.VarBinary, typeof(SqlString), SqlDbType.VarChar, typeof(SqlGuid), SqlDbType.UniqueIdentifier }; private static object[] sqlTypeToUrtType = new object[] { typeof(SqlBinary), typeof(System.Byte[]), typeof(SqlByte), typeof(System.Byte), typeof(SqlDecimal), typeof(System.Decimal), typeof(SqlDouble), typeof(System.Double), typeof(SqlGuid), typeof(System.Guid), typeof(SqlString), typeof(System.String), typeof(SqlSingle), typeof(System.Single), typeof(SqlDateTime), typeof(System.DateTime), typeof(SqlInt16), typeof(System.Int16), typeof(SqlInt32), typeof(System.Int32), typeof(SqlInt64), typeof(System.Int64), typeof(SqlMoney), typeof(System.Decimal), typeof(Object), typeof(System.Object) }; private static object[] dbTypeToUrtTypeMap = new object[] { DbType.AnsiString, typeof(System.String), DbType.AnsiStringFixedLength, typeof(System.String), DbType.Binary, typeof(System.Byte[]), DbType.Boolean, typeof(System.Boolean), DbType.Byte, typeof(System.Byte), DbType.Currency, typeof(System.Decimal), DbType.Date, typeof(System.DateTime), DbType.DateTime, typeof(System.DateTime), DbType.DateTime2, typeof(System.DateTime), DbType.DateTimeOffset, typeof(System.DateTimeOffset), DbType.Decimal, typeof(System.Decimal), DbType.Double, typeof(System.Double), DbType.Guid, typeof(System.Guid), DbType.Int16, typeof(System.Int16), DbType.Int32, typeof(System.Int32), DbType.Int64, typeof(System.Int64), DbType.Object, typeof(System.Object), DbType.SByte, typeof(System.Byte), DbType.Single, typeof(float), DbType.String, typeof(System.String), DbType.StringFixedLength, typeof(System.String), DbType.Time, typeof(System.DateTime), DbType.UInt16, typeof(System.UInt16), DbType.UInt32, typeof(System.UInt32), DbType.UInt64, typeof(System.UInt64), DbType.VarNumeric, typeof(System.Decimal) }; internal static Type SqlDbTypeToSqlType(SqlDbType sqlDbType) { for(int i = 1; i < sqlTypeToSqlDbTypeMap.Length; i += 2) { if(sqlDbType == (SqlDbType) sqlTypeToSqlDbTypeMap[i]) { return (Type) sqlTypeToSqlDbTypeMap[i-1]; } } return null; } //internal static Type SqlTypeToUrtType(Type sqlType) { // for (int i = 0; i < sqlTypeToUrtType.Length; i += 2){ // if (sqlType == (Type)sqlTypeToUrtType[i]){ // return (Type)sqlTypeToUrtType[i + 1]; // } // } // return null; //} //internal static Type UrtTypeToSqlType(Type urtType) { // for (int i = 1; i < sqlTypeToUrtType.Length; i += 2) { // if (urtType == sqlTypeToUrtType[i]) { // return (Type)sqlTypeToUrtType[i - 1]; // } // } // return null; //} internal static Type DbTypeToUrtType(DbType dbType) { for (int i = 0; i < dbTypeToUrtTypeMap.Length; i += 2) { if (dbType == (DbType) dbTypeToUrtTypeMap[i]) { return (Type)dbTypeToUrtTypeMap[i + 1]; } } return null; } //internal static ParameterDirection OleDbToAdoPlusDirection(int oleDbDirection) { // return (ParameterDirection) DoMapping( oleDbToAdoPlusDirectionMap, oleDbDirection, (int) ParameterDirection.Input ); //} //internal static Type OleDbToUrtType( int oleDbType ) { // Type returnType = null; // bool isArray = (oleDbType & (int) OleDbDataType.adArray) > 0; // oleDbType = oleDbType & ~((int) OleDbDataType.adArray); // switch (oleDbType) { // case (int) OleDbDataType.adSmallInt: // returnType = typeof(Int16); // break; // case (int) OleDbDataType.adInteger: // returnType = typeof(Int32); // break; // case (int) OleDbDataType.adSingle: // returnType = typeof(Single); // break; // case (int) OleDbDataType.adDouble: // returnType = typeof(Double); // break; // case (int) OleDbDataType.adCurrency: // case (int) OleDbDataType.adNumeric: // case (int) OleDbDataType.adDecimal: // returnType = typeof(Decimal); // break; // case (int) OleDbDataType.adDate: // case (int) OleDbDataType.adDBDate: // case (int) OleDbDataType.adDBTimeStamp: // returnType = typeof(DateTime); // break; // case (int) OleDbDataType.adBSTR: // case (int) OleDbDataType.adChar: // case (int) OleDbDataType.adWChar: // returnType = typeof(String); // break; // case (int) OleDbDataType.adEmpty: // case (int) OleDbDataType.adIDispatch: // case (int) OleDbDataType.adVariant: // case (int) OleDbDataType.adIUnknown: // returnType = typeof(Object); // break; // case (int) OleDbDataType.adError: // returnType = typeof(Exception); // break; // case (int) OleDbDataType.adBoolean: // returnType = typeof(Boolean); // break; // case (int) OleDbDataType.adUnsignedTinyInt: // returnType = typeof(Byte); // break; // case (int) OleDbDataType.adTinyInt: // returnType = typeof(SByte); // break; // case (int) OleDbDataType.adUnsignedSmallInt: // returnType = typeof(UInt16); // break; // case (int) OleDbDataType.adUnsignedInt: // returnType = typeof(UInt32); // break; // case (int) OleDbDataType.adBigInt: // returnType = typeof(Int64); // break; // case (int) OleDbDataType.adUnsignedBigInt: // returnType = typeof(UInt64); // break; // case (int) OleDbDataType.adGUID: // returnType = typeof(Guid); // break; // case (int) OleDbDataType.adBinary: // returnType = typeof(Byte[]); // break; // case (int) OleDbDataType.adDBTime: // returnType = typeof(TimeSpan); // break; // default: // returnType = typeof(Object); // break; // } // // //internal static DbType OleDbToDbType( int oleDbType ) { // return (DbType) DoMapping( oleDbTypeToDbTypeMap, oleDbType, (int) DbType.Object ); //} //private static int DoMapping( int[] mapTable, int from, int defaultTarget ) { // for (int i = 0; i< mapTable.Length; i= i+2) { // if( mapTable[i] == from ) // return mapTable[i+1]; // } // return defaultTarget; //} } } // 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
- VisualStyleTypesAndProperties.cs
- EnumBuilder.cs
- StringTraceRecord.cs
- HighContrastHelper.cs
- Size3DConverter.cs
- ApplicationSettingsBase.cs
- Pkcs7Signer.cs
- WsatStrings.cs
- BitConverter.cs
- _ProxyChain.cs
- OpenTypeLayoutCache.cs
- UnaryNode.cs
- RadialGradientBrush.cs
- FormViewDeleteEventArgs.cs
- RelationshipConverter.cs
- XXXOnTypeBuilderInstantiation.cs
- ScrollBar.cs
- ExpressionBindings.cs
- Padding.cs
- Timeline.cs
- TraceAsyncResult.cs
- TraceHandlerErrorFormatter.cs
- UTF32Encoding.cs
- SafeHGlobalHandleCritical.cs
- FullTextLine.cs
- NamespaceEmitter.cs
- GreenMethods.cs
- StyleXamlParser.cs
- PathFigureCollection.cs
- SqlPersonalizationProvider.cs
- ViewSimplifier.cs
- InstanceLockedException.cs
- FtpWebResponse.cs
- EventQueueState.cs
- DesignerForm.cs
- _RequestCacheProtocol.cs
- WebConfigurationHost.cs
- Span.cs
- MatrixCamera.cs
- GenericTypeParameterBuilder.cs
- SurrogateDataContract.cs
- UriTemplateClientFormatter.cs
- CachingParameterInspector.cs
- PageHandlerFactory.cs
- HMACSHA512.cs
- OdbcUtils.cs
- DataGridViewBand.cs
- ApplicationActivator.cs
- UpdateCommand.cs
- UIPermission.cs
- LostFocusEventManager.cs
- DebugView.cs
- OpCellTreeNode.cs
- IpcChannel.cs
- Literal.cs
- CodeAttributeArgumentCollection.cs
- NativeCppClassAttribute.cs
- EllipseGeometry.cs
- HuffModule.cs
- PreProcessInputEventArgs.cs
- ToggleButtonAutomationPeer.cs
- PreviewPrintController.cs
- WindowsAltTab.cs
- GregorianCalendar.cs
- ProgressPage.cs
- ImageKeyConverter.cs
- LingerOption.cs
- Semaphore.cs
- FieldNameLookup.cs
- InplaceBitmapMetadataWriter.cs
- FocusManager.cs
- Operators.cs
- CodeGroup.cs
- CfgSemanticTag.cs
- SinglePageViewer.cs
- MetadataReference.cs
- FontFamilyValueSerializer.cs
- Transform3DGroup.cs
- RenderingEventArgs.cs
- SafeArrayTypeMismatchException.cs
- SelectionEditor.cs
- SemaphoreFullException.cs
- InProcStateClientManager.cs
- UnescapedXmlDiagnosticData.cs
- WebBaseEventKeyComparer.cs
- PageCatalogPartDesigner.cs
- counter.cs
- MbpInfo.cs
- SerializeAbsoluteContext.cs
- counter.cs
- SoapIncludeAttribute.cs
- StringInfo.cs
- OperationBehaviorAttribute.cs
- TypeDescriptor.cs
- BitmapEffectDrawingContextState.cs
- TextServicesCompartment.cs
- CodeDirectoryCompiler.cs
- ProcessStartInfo.cs
- DifferencingCollection.cs
- UnsafeNativeMethods.cs