2012-08-30 230 views
1

我創建了原因的枚舉,現在我想將其轉換爲字符串,但出現錯誤。枚舉轉換爲字符串

其實我想要使用數據集在網格視圖中綁定數據,我正在爲此目的在圖層中工作。

我知道我的問題的回答將是單行,但我並沒有發現來自這就是爲什麼決定在這裏問

請幫助怎麼我在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

發佈從應用程序直接代碼,如果你正在爲一個organistaion – Vamsi

+0

它看起來好像問題的標題是錯誤的在線可能會導致一些問題;你需要從字符串轉換爲Enum –

+0

Vamsi Krishna可能請你告訴我我的代碼如何創建問題在這裏發佈? –

回答

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); 
+1

它幫助我,但我想你忘了在最後加上真實。我認爲確切的解決方案是 leave.LeaveType =(LeaveReason)Enum.Parse(typeof(LeaveReason),dr [「id_leave_type」]。ToString(),true); 你認爲? –