关于枚举类型与数据库存储处理方法?
通常,我们在开发时会遇到许多枚举类型值,需要存储到数据库,并且在Grid中呈现。
比如我们平时定义常用到的枚举:
public enum State
{
[Description("已过账")]
Yes = 1,
[Description("未过账")]
No = 0,
[Description("全部")]
All = 2
}
当某数据表字段需使用State枚举,那么我们该怎样方式来从数据库存取该字段呢?
怎样展示在Grid之中或ComboBox中? 如何从Grid或ComboBox中修改后再存入数据库?
谢谢!
------解决方案--------------------不知道你是winform还是asp.net.
但是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