Class DataTypeConverter

This class provides static methods and an implementation of IDataTypeConverter that converts various sql data types into the right database specific database or into a .NET data type.

Inheritance
object
DataTypeConverter
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: ETLBox.Helper
Assembly: ETLBox.dll
Syntax
    public class DataTypeConverter : IDataTypeConverter

Methods

ChangeType(object, Type)

Declaration
    public static object ChangeType(object value, Type destinationType)
Parameters
TypeNameDescription
objectvalue
System.TypedestinationType
Returns
TypeDescription
object

ChangeType<T>(object)

Declaration
    public static T ChangeType<T>(object value)
Parameters
TypeNameDescription
objectvalue
Returns
TypeDescription
T
Type Parameters
NameDescription
T

DefaultValueToSqlConversionFunc(ConversionContext)

Declaration
    public static string DefaultValueToSqlConversionFunc(ConversionContext conversionContext)
Parameters
TypeNameDescription
ConversionContextconversionContext
Returns
TypeDescription
string

GetClrType(DbType)

Returns a .NET type for the provided DbType. E.g. DbType.Binary will return byte[]

Declaration
    public static Type GetClrType(DbType dbType)
Parameters
TypeNameDescription
System.Data.DbTypedbType

The DbType

Returns
TypeDescription
System.Type

A .NET type

GetDatabaseType(Type, ConnectionManagerType)

Returns a database specific type for the provided .NET datat type, depending on the connection manager. E.g. passing the .NET data type long for SqlServer will return the string BIGINT

Declaration
    public static string GetDatabaseType(Type clrType, ConnectionManagerType connectionType)
Parameters
TypeNameDescription
System.TypeclrType

The .NET data type

ConnectionManagerTypeconnectionType

Database connection type, e.g. SqlServer

Returns
TypeDescription
string

A database specific type string

GetDBType(string)

Returns the ADO.NET System.Data.DbType object for a specific sql type. E.g. the method would return the System.Data.DbType.String for the sql type 'CHAR(10)'

Declaration
    public static DbType? GetDBType(string dbSpecificTypeName)
Parameters
TypeNameDescription
stringdbSpecificTypeName

The sql specific data type name

Returns
TypeDescription
System.Data.DbType?

The corresponding ADO .NET database type

GetDBType(Type)

Declaration
    public static DbType GetDBType(Type clrType)
Parameters
TypeNameDescription
System.TypeclrType
Returns
TypeDescription
System.Data.DbType

GetStringLengthFromCharString(string)

Returns the string length that a sql char datatype has in it's definition. E.g. VARCHAR(40) would return 40, NVARCHAR2 ( 2 ) returns 2

Declaration
    public static int GetStringLengthFromCharString(string value)
Parameters
TypeNameDescription
stringvalue

A sql character data type

Returns
TypeDescription
int

The string length defined in the data type - 0 if nothing could be found

GetTypeObject(string)

Returns the .NET type object for a specific sql type. E.g. the method would return the .NET type string for the sql type 'CHAR(10)'

Declaration
    public static Type GetTypeObject(string dbSpecificTypeName)
Parameters
TypeNameDescription
stringdbSpecificTypeName

The sql specific data type name

Returns
TypeDescription
System.Type

The corresponding .NET data type

GetUnderlyingType(Type)

Declaration
    public static Type GetUnderlyingType(Type type)
Parameters
TypeNameDescription
System.Typetype
Returns
TypeDescription
System.Type

TryConvertAliasName(string, ConnectionManagerType)

Converts a data type alias name (e.g. an alias name like "varchar(10)" ) to the original database type name ("character varying").

Declaration
    public static string TryConvertAliasName(string dataTypeName, ConnectionManagerType connectionType)
Parameters
TypeNameDescription
stringdataTypeName

The database alias type name

ConnectionManagerTypeconnectionType

Which database (e.g. Postgres, MySql, ...)

Returns
TypeDescription
string

The type name converted to an original database type name

TryConvertDbDataType(string, ConnectionManagerType)

Tries to convert the data type from the TableColumn into a database specific type.

Declaration
    public string TryConvertDbDataType(string dataTypeName, ConnectionManagerType connectionType)
Parameters
TypeNameDescription
stringdataTypeName

The specific type name from a table column

ConnectionManagerTypeconnectionType

The database connection type

Returns
TypeDescription
string

The type used in the CREATE TABLE statement

TryGetDbSpecificType(string, ConnectionManagerType)

Tries to convert the data type into a database specific type. E.g. the data type 'INT' would be converted to 'INTEGER' for SQLite connections.

Declaration
    public static string TryGetDbSpecificType(string dataTypeName, ConnectionManagerType connectionType)
Parameters
TypeNameDescription
stringdataTypeName

A data type name

ConnectionManagerTypeconnectionType

The database connection type

Returns
TypeDescription
string

The converted database specific type name

Implements