2016-01-05 77 views
-6

在傳遞數據集錶轉換爲列表時返回異常。錯誤返回無法將類型爲'System.Decimal'的對象轉換爲鍵入'System.String'

//here i am passing dataset tables to FromDataRow 
var list = ClassA.FromDataRow(ds.Tables[1].AsEnumerable()); 

//here is function implementation 
    public class ClassA 
    { 
     public List<UserDesignation> UserDesigGrid { get; set; } 

     public static ClassA FromDataRow(IEnumerable<DataRow> userDesignationDetails, IEnumerable<DataRow> userContactDeails, IEnumerable<DataRow> userCategoryDetails) 
     { 
      var classA = new ClassA 
      { 
       UserDesigGrid = userDesignationDetails.Select(r => new UserDesignation 
       { 
        USER_ID = (int)r["USER_ID"], 
        DESIGNATION = (string)r["DESIGNATION"], 
        USER_TYPE = (string)r["LOCATION_TYPE"], 
        LOCATION = (string)r["LOCATION_ID_NAME"], 
        EFFECTIVE_FROM = (string)r["WEF_DATE"], 
        EFFECTIVE_TO = (string)r["WET_DATE"], 

       }).ToList()   
      }; 
      return classA; 
     } 
    } 
//property layer 
public class UserDesignation 
    { 
     public int USER_ID { get; set; } 
     public string DESIGNATION { get; set; } 
     public string USER_TYPE { get; set; } 
     public string LOCATION { get; set; } 
     public string EFFECTIVE_FROM { get; set; } 
     public string EFFECTIVE_TO { get; set; } 

    } 

返回異常而轉換

「無法投型 'System.Decimal' 的對象鍵入 'System.String'」

+5

該錯誤似乎很自我解釋。其中一個字段是您要顯式轉換爲字符串的小數。嘗試並使用r [「DESIGNATION」]。ToString() –

+0

嘗試使用'ToString()'方法代替投射。另外,應該檢查空值。 –

+0

或者,使用'decimal'作爲屬性的類型而不是'string' ...我強烈要求您同時遵循.NET命名約定。 –

回答

1

有沒有隱性或顯性的轉換從十進制到字符串。您可以嘗試:

string yourString = a.ToString(); 

其中a是十進制變量。

相關問題