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
Implements
Inherited Members
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
Type | Name | Description |
---|---|---|
object | value | |
System.Type | destinationType |
Returns
Type | Description |
---|---|
object |
ChangeType<T>(object)
Declaration
public static T ChangeType<T>(object value)
Parameters
Type | Name | Description |
---|---|---|
object | value |
Returns
Type | Description |
---|---|
T |
Type Parameters
Name | Description |
---|---|
T |
DefaultValueToSqlConversionFunc(ConversionContext)
Declaration
public static string DefaultValueToSqlConversionFunc(ConversionContext conversionContext)
Parameters
Type | Name | Description |
---|---|---|
ConversionContext | conversionContext |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
System.Data.DbType | dbType | The DbType |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
System.Type | clrType | The .NET data type |
ConnectionManagerType | connectionType | Database connection type, e.g. SqlServer |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
string | dbSpecificTypeName | The sql specific data type name |
Returns
Type | Description |
---|---|
System.Data.DbType? | The corresponding ADO .NET database type |
GetDBType(Type)
Declaration
public static DbType GetDBType(Type clrType)
Parameters
Type | Name | Description |
---|---|---|
System.Type | clrType |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
string | value | A sql character data type |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
string | dbSpecificTypeName | The sql specific data type name |
Returns
Type | Description |
---|---|
System.Type | The corresponding .NET data type |
GetUnderlyingType(Type)
Declaration
public static Type GetUnderlyingType(Type type)
Parameters
Type | Name | Description |
---|---|---|
System.Type | type |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
string | dataTypeName | The database alias type name |
ConnectionManagerType | connectionType | Which database (e.g. Postgres, MySql, ...) |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
string | dataTypeName | The specific type name from a table column |
ConnectionManagerType | connectionType | The database connection type |
Returns
Type | Description |
---|---|
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
Type | Name | Description |
---|---|---|
string | dataTypeName | A data type name |
ConnectionManagerType | connectionType | The database connection type |
Returns
Type | Description |
---|---|
string | The converted database specific type name |