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
DataTypeConverter
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
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
DbTypedbType

The DbType

Returns
TypeDescription
Type

A .NET type

GetDatabaseType(ConnectionType, Type)

Returns a database specific type for the provided .NET database 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(ConnectionType connectionType, Type clrType)
Parameters
TypeNameDescription
ConnectionTypeconnectionType

Database connection type, e.g. SqlServer

TypeclrType

The .NET data type

Returns
TypeDescription
string

A database specific type string

GetDbType(string, bool)

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, bool isOdbcOrOleDb = false)
Parameters
TypeNameDescription
stringdbSpecificTypeName

The sql specific data type name

boolisOdbcOrOleDb

Indicates if the target connection is either an Odbc or OleDb connection

Returns
TypeDescription
DbType?

The corresponding ADO .NET database type

GetDbType(Type)

Declaration
    public static DbType GetDbType(Type clrType)
Parameters
TypeNameDescription
TypeclrType
Returns
TypeDescription
DbType

GetStringLengthFromBinaryString(string)

Declaration
    public static int GetStringLengthFromBinaryString(string value)
Parameters
TypeNameDescription
stringvalue
Returns
TypeDescription
int

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
Type

The corresponding .NET data type

GetUnderlyingType(Type)

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

TryConvertAliasName(string, ConnectionType)

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, ConnectionType connectionType)
Parameters
TypeNameDescription
stringdataTypeName

The database alias type name

ConnectionTypeconnectionType

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

Returns
TypeDescription
string

The type name converted to an original database type name

TryConvertDbDataType(string, ConnectionType)

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

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

The specific type name from a table column

ConnectionTypeconnectionType

The database connection type

Returns
TypeDescription
string

The type used in the CREATE TABLE statement

TryGetDbSpecificType(string, ConnectionType)

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, ConnectionType connectionType)
Parameters
TypeNameDescription
stringdataTypeName

A data type name

ConnectionTypeconnectionType

The database connection type

Returns
TypeDescription
string

The converted database specific type name

Implements