数据库里的枚举值 显示到datagridview上为字符串汉字的问题 数据库 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的 datatable_model 中本来就不应该有“sex列”,只应该有“CustomerSex列”。先调试数据,不要管界面。 如果 仅仅考虑显示出来,为何不适用 Combobox 用Combobox 是个不错的选择,你还可以用 datagridview 的cellFormating 事件进行修改 这儿给楼主说一个枚举处理方式 定义一个枚举属性类 在枚举里增加这个属性如:[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)] public class EnumAttribute : Attribute { private string _name; private string _description; /// <summary> /// 枚举名称 /// </summary> public string Name { get { return _name; } set { _name = value; } } /// <summary> /// 枚举描述 /// </summary> public string Description { get { return _description; } set { _description = value; } } /// <summary> /// 构造函数 /// </summary> /// <param name="name">枚举名称</param> public EnumAttribute(string name) { this.Name = name; } /// <summary> /// 构造函数 /// </summary> /// <param name="name">枚举名称</param> /// <param name="description">枚举描述</param> public EnumAttribute(string name, string description) { this.Name = name; this.Description = description; } }在定义枚举的时候 加上属性 /// <summary> /// 作者 /// </summary> [EnumAttribute("writer_text|author_e|showwriter", "作者")] A = 4, /// <summary> /// 第一作者 /// </summary> [EnumAttribute("firstwriter", "第一作者")] F = 5再去定义一个枚举操作公共类:EnumUtils /// <summary> /// 用于缓存枚举值的属性值 /// </summary> private static readonly Dictionary<object, EnumAttribute> enumAttr = new Dictionary<object, EnumAttribute>();/// <summary> /// 获取枚举值的名称,该名称由EnumAttribute定义 /// </summary> /// <param name="value">枚举值</param> /// <returns>枚举值对应的名称</returns> public static string GetName(Enum value) { EnumAttribute ea = GetAttribute(value); return ea != null ? ea.Name : ""; } /// <summary> /// 获取枚举值的名称,该名称由EnumAttribute定义 /// </summary> /// <param name="value">枚举值</param> /// <returns>枚举值对应的名称</returns> public static string GetDescription(Enum value) { EnumAttribute ea = GetAttribute(value); return ea != null ? ea.Description : ""; }/// <summary> /// 获取枚举值定义的属性 /// </summary> /// <param name="value"></param> /// <returns></returns> private static EnumAttribute GetAttribute(Enum value) { if (enumAttr.ContainsKey(value)) { EnumAttribute ea = enumAttr[value]; return ea; } else { FieldInfo field = value.GetType().GetField(value.ToString()); if (field == null) return null; EnumAttribute ea = null; object[] attributes = field.GetCustomAttributes(typeof(EnumAttribute), true); if (attributes != null && attributes.Length > 0) { ea = (EnumAttribute)attributes[0]; } enumAttr[value] = ea; return ea; } }OK 可以处理的需求了 代码只是部分操作 自己需要什么操作自己加 比如获取定义的枚举对象里有哪些枚举 等等 感谢各位的帮助,最终使用 sql 语句 直接返回字符串了 select name, sex = case sex when 1 then‘男’ wen 0 then‘女’end ,age。 原来实体模型并不参与数据重构。 WebBrowser模仿选项卡 如何将数字转成字符串? 关于vs.net2005的水晶报表的问题!!! 页面传递多参数问题 问一个对话框的问题? Microsoft Visual Studio 2005 什么时候发布呀,beta的Bug太多了 datagridview中插入数据 C# C/S 客户端与服务器端交户 怎么将IE的下方的状态栏隐藏,来解决刷新问题? 如何定义应用程序集变量? 自己搞了百度网盘搜索引擎,欢迎大家来吐糟 .NET 和服务器数据库连接问题。急,在线等大神。
定义一个枚举属性类
在枚举里增加这个属性如:
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public class EnumAttribute : Attribute
{
private string _name;
private string _description; /// <summary>
/// 枚举名称
/// </summary>
public string Name
{
get { return _name; }
set { _name = value; }
} /// <summary>
/// 枚举描述
/// </summary>
public string Description
{
get { return _description; }
set { _description = value; }
} /// <summary>
/// 构造函数
/// </summary>
/// <param name="name">枚举名称</param>
public EnumAttribute(string name)
{
this.Name = name;
} /// <summary>
/// 构造函数
/// </summary>
/// <param name="name">枚举名称</param>
/// <param name="description">枚举描述</param>
public EnumAttribute(string name, string description)
{
this.Name = name;
this.Description = description;
}
}在定义枚举的时候 加上属性
/// <summary>
/// 作者
/// </summary>
[EnumAttribute("writer_text|author_e|showwriter", "作者")]
A = 4, /// <summary>
/// 第一作者
/// </summary>
[EnumAttribute("firstwriter", "第一作者")]
F = 5再去定义一个枚举操作公共类:EnumUtils
/// <summary>
/// 用于缓存枚举值的属性值
/// </summary>
private static readonly Dictionary<object, EnumAttribute> enumAttr = new Dictionary<object, EnumAttribute>();/// <summary>
/// 获取枚举值的名称,该名称由EnumAttribute定义
/// </summary>
/// <param name="value">枚举值</param>
/// <returns>枚举值对应的名称</returns>
public static string GetName(Enum value)
{
EnumAttribute ea = GetAttribute(value);
return ea != null ? ea.Name : "";
} /// <summary>
/// 获取枚举值的名称,该名称由EnumAttribute定义
/// </summary>
/// <param name="value">枚举值</param>
/// <returns>枚举值对应的名称</returns>
public static string GetDescription(Enum value)
{
EnumAttribute ea = GetAttribute(value);
return ea != null ? ea.Description : "";
}/// <summary>
/// 获取枚举值定义的属性
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private static EnumAttribute GetAttribute(Enum value)
{
if (enumAttr.ContainsKey(value))
{
EnumAttribute ea = enumAttr[value];
return ea;
}
else
{
FieldInfo field = value.GetType().GetField(value.ToString());
if (field == null) return null;
EnumAttribute ea = null;
object[] attributes = field.GetCustomAttributes(typeof(EnumAttribute), true);
if (attributes != null && attributes.Length > 0)
{
ea = (EnumAttribute)attributes[0];
}
enumAttr[value] = ea;
return ea;
}
}
OK 可以处理的需求了 代码只是部分操作 自己需要什么操作自己加 比如获取定义的枚举对象里有哪些枚举 等等
select name, sex = case sex when 1 then‘男’ wen 0 then‘女’end ,age。
原来实体模型并不参与数据重构。