private Type getType(string typeName, string columnName)
{
Type type;
switch (typeName.ToLower())
{
case "integer":
case "int2":
case "int4":
case "smallint":
type = typeof(int);
break;
case "biginteger":
case "serial":
case "bigserial":
type = typeof(Int64);
break;
case "decimal":
case "numeric":
case "float8":
case "float4":
case "real":
type = typeof(double);
break;
case "timestamp":
case "timestamptz":
case "date":
case "time":
type = typeof(DateTime);
break;
case "character":
case "char":
case "varchar":
case "text":
case "character varying":
type = typeof(string);
break;
case "bytea":
type = typeof(byte[]);
break;
default:
throw new ArgumentException("The data type for column " + columnName + " of data source " + m_dataSource.getName() + " is not supported");
}
return type;
}