日期:2014-05-17  浏览次数:20771 次

关于枚举类型与数据库存储处理方法?

通常,我们在开发时会遇到许多枚举类型值,需要存储到数据库,并且在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