-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'”
该错误似乎很自我解释。其中一个字段是您要显式转换为字符串的小数。尝试并使用r [“DESIGNATION”]。ToString() –
尝试使用'ToString()'方法代替投射。另外,应该检查空值。 –
或者,使用'decimal'作为属性的类型而不是'string' ...我强烈要求您同时遵循.NET命名约定。 –