我需要在运行时使用从数据库返回的值作为属性创建OdbcParameter的实例。 我的问题是数据类型的描述返回为大写的字符串,这就是为什么Enum.Parse或Enum.TryParse没有我的字符串转换为它的枚举的correspondig值:将字符串强制转换为OdbcType枚举
var datatype = (OdbcType)Enum.Parse(typeof(OdbcType), "NVARCHAR");
为了解决这个问题问题我已经创建了一个词典:
public static Dictionary<string, OdbcType> OdbcDataTypeDictionary = new Dictionary<string, OdbcType>()
{
{"BIGINT", OdbcType.BigInt},
{"BINARY", OdbcType.Binary},
{"BIT", OdbcType.Bit},
{"CHAR", OdbcType.Char},
{"DATE", OdbcType.Date},
{"DATETIME", OdbcType.DateTime},
{"DECIMAL", OdbcType.Decimal},
{"DOUBLE", OdbcType.Double},
{"IMAGE", OdbcType.Image},
{"INT", OdbcType.Int},
{"NCHAR", OdbcType.NChar},
{"NTEXT", OdbcType.NText},
{"NUMERIC", OdbcType.Numeric},
{"NVARCHAR", OdbcType.NVarChar},
{"REAL", OdbcType.Real},
{"SMALLDATETIME", OdbcType.SmallDateTime},
{"SMALLINT", OdbcType.SmallInt},
{"TEXT", OdbcType.Text},
{"TIME", OdbcType.Time},
{"TIMESTAMP", OdbcType.Timestamp},
{"TINYINT", OdbcType.TinyInt},
{"UNIQUEIDENTIFIER", OdbcType.UniqueIdentifier},
{"VARBINARY", OdbcType.VarBinary},
{"VARCHAR", OdbcType.VarChar}
};
它的工作,但我不相信这是最好的解决方案。
有没有人有更好的方法来解决这个问题的想法?
非常感谢!正是我需要的。 – Daniel