通常,我们在开发时会遇到许多枚举类型值,需要存储到数据库,并且在Grid中呈现。比如我们平时定义常用到的枚举:public enum State
{
[Description("已过账")]
Yes = 1,
[Description("未过账")]
No = 0,
[Description("全部")]
All = 2
}当某数据表字段需使用State枚举,那么我们该怎样方式来从数据库存取该字段呢?怎样展示在Grid之中或ComboBox中? 如何从Grid或ComboBox中修改后再存入数据库?谢谢!
不过更简单的是,直接写
public enum State
{
已过账 = 1,
未过账 = 0,
全部 = 2
}
这样只要ToString就可以了。
用int强制转换就行。
用string可以用Enum.Parse解析。
但是Column都可以用Dropdownlist的。
asp.net使用Template
winform可以使用类似下面的方法:
comboBox1.DataSource = Enum.GetValues(typeof(MyEnum));
MyEnum value = (MyEnum)comboBox1.SelectedValue;
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "My Enum Column";
col.DataSource = Enum.GetValues(typeof(MyEnum));
col.ValueType = typeof(MyEnum);
dataGridView1.Columns.Add(col);代码来自:
http://stackoverflow.com/questions/56443/create-drop-down-list-options-from-enum-in-a-datagridview