我需要在運行時使用從數據庫返回的值作爲屬性創建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