从数据库查询生成枚举
本文关键字:枚举 查询 数据库 | 更新日期: 2023-09-27 18:18:10
我想有一个从数据库查询建立的Enum,我被困在如何做到这一点。我的想法是有一个方法,返回一个字符串列表,并使用它来填充枚举,但我不确定这是否可能或正确的方式去做。构建Enum的表将很少更改。有什么好方法可以做到这一点?
enum DrugColor
{
}
private List<string> BuildEnum()
{
List<string> EnumList = new List<string>();
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlCommand cmd = new SqlCommand("select color from DrugColors", con))
{
con.Open();
cmd.CommandType = CommandType.Text;
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string colorName;
colorName = rdr["Color"].ToString();
EnumList.Add(colorName);
}
}
return EnumList;
}
}
所以你的函数应该返回一个枚举列表:
private List<DrugColor> BuildEnum()
这是第一件事。当声明返回的列表时,也将其更改为enum列表:
List<DrugColor> EnumList = new List<DrugColor>();
当你从数据库中获取数据时,每个read()是一个颜色,所以颜色名称是一个DrugColor
DrugColor colorName;
colorName = new DrugColor{(DrugColor)Enum.Parse(typeof(DrugColor ),rdr["Color"].ToString()); }
将字符串解析为enum。
然后添加到列表
瞧!
编辑:你的enum应该包含以下内容:
enum DrugColor
{
Red,
Blue,
Yellow
}
枚举在设计时创建。简而言之,您不会在运行时实例期间生成枚举,因此您是在描述代码编写代码的需求。有多少种不同的药物颜色?看起来手工完成也很容易。