我创建了“离开原因的枚举”,现在我想将其转换为字符串但出现错误。
实际上我想使用数据集在网格视图中绑定数据,为此我正在分层工作。
我知道我的问题的答案将是单行,但我没有找到来自不同网站的确切解决方案,这就是为什么决定在这里问一下
请帮助我,因为我是c#
的新人这里是自定义类型图层中的枚举类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sherserve.CustomTypeLayer
{
public enum LeaveReason
{
Sick,
Planned,
Other
}
}
最后这里是业务逻辑层:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sherserve.DataAccessLayer;
using Sherserve.CustomTypeLayer;
using System.Data;
namespace Sherserve.BusinessLogicLayer
{
public class LMSManager
{
LMSRepository objLMSRepository = new LMSRepository();
public void EmployeeLeave(EmployeeLeave LeaveInsert)
{
objLMSRepository.InsertLeave(LeaveInsert);
}
public List<CustomTypeLayer.EmployeeLeave> GetLeaveRecord(int emplid)
{
DataSet ds = objLMSRepository.GetLeaveRecord(emplid);
List<EmployeeLeave> leavelist = new List<EmployeeLeave>();
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
for (int a; a < ds.Tables[0].Rows.Count; a++)
{
DataRow dr = ds.Tables[0].Rows[a];
EmployeeLeave leave = new EmployeeLeave();
leave.DateFrom = Convert.ToDateTime(dr["dt_from"]);
leave.DateTo = Convert.ToDateTime(dr["dt_to"]);
leave.EmployeeId = Convert.ToInt32(dr["EmployeeID"]);
leave.Reason = Convert.ToString(dr["txt_reason"]);
//leave.LeaveType = Convert.ToString(dr["id_leave_type"]);
leavelist.Add(leave);
}
}
return leavelist;
}
}
}
您可以在业务逻辑层中看到我评论过
leave.LeaveType = Convert.ToString(dr["id_leave_type"]);
实际上LeaveType是枚举,现在我想将其转换为字符串,所以不应出现任何错误....
答案 0 :(得分:5)
使用Enum.Parse(Type,String,Boolean ignoreCase) or Enum.Parse(Type,String)方法。
leave.LeaveType=(LeaveReason)Enum.Parse(typeof(LeaveReason),
dr["id_leave_type"].ToString(),true);