我有一个数据库,其状态字段可以保留以下值:
当然,我只是将数字保存在我的数据库中的tinyint数据类型中。然后我需要查询该表,但GUI必须显示字符串值而不是数值。
实现它的最佳方法是什么?我应该使用Enum数据类型还是字典?使用一个优于另一个的优势是什么?
此外,结果将显示在数据网格
中答案 0 :(得分:2)
我将采取的方法是
tinyint
值映射到enum
Dictionary<TheEnumType, string>
,将值映射到用户字符串例如
public enum Names {
Registrado = 0,
Activo = 1,
Finalizado = 2,
Anticipado = 3,
Reestructurado = 4
}
现在,您可以轻松地在DB值和相应的枚举
之间进行转换int theDbValue = ...;
Names name = (Names)theDbValue;
现在可以使用Dictionary<Names, string>
轻松完成名称之间的映射。
var map = new Dictionary<Names, string>();
map[Names.Registrado] = "...";
map[Names.Activo] = "...";
// etc ...
答案 1 :(得分:1)
如果我们谈论的是有限的选择,我会建议枚举,因为表现明智,他们会好很多。一些可能有帮助的类似问题