我有一个班级客户。我正在尝试从访问数据库数据库加载数据。
客户类结构如下:
public class Customer
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public string CustAddress { get; set; }
public string PnoneNo { get; set; }
public string MobileNo { get; set; }
public string CstNo { get; set; }
public string DlNo { get; set; }
public decimal BalAmt { get; set; }
}
我在db中的表结构如下:
现在,当我尝试在客户类中加载数据时,它会抛出一个错误:
“指定的演员表无效。”
用于将数据加载到类我使用下面的代码:
public static List<Customer> LoadListItems(string strTable, string strOrderBy)
{
List<Customer> lstCustomer=null;
try
{
DataUtility objDataUtility = new DataUtility();
DataTable objCustomerList = objDataUtility.LoadCustomerInfo(strTable, strOrderBy);
lstCustomer= objCustomerList.AsEnumerable().Select(row =>
new Customer
{
CustomerId = row.Field<int>("CID"), //throwing error for this line
CustomerName = row.Field<string>("salPNm"),
CustAddress = row.Field<string>("cadd"),
MobileNo = row.Field<string>("cmbl"),
PnoneNo = row.Field<string>("cph"),
DlNo = row.Field<string>("cDlN"),
CstNo = row.Field<string>("cTin"),
BalAmt = row.Field<decimal>("cobal")
}).ToList();
}
catch (Exception ex)
{
throw ex;
}
return lstCustomer;
}
在上面的方法中CustomerId = row.Field<int>("CID"),
抛出一个错误,当我评论这一行时,它正常工作。
请帮助我如何从“无法列表”列表中获取int值。
先谢谢。 Eshwer
答案 0 :(得分:0)
将其替换为 -
CustomerId = Convert.ToInt64(row.Field<int>("CID"));
此外,通过在此行Quick Watch
上应用row.Field<int>("CID")
来检查值。看看它是not null
以及它返回的值是什么。
答案 1 :(得分:0)
试试这个
public class Customer
{
public Int64 CustomerId { get; set; }
public string CustomerName { get; set; }
public string CustAddress { get; set; }
public string PnoneNo { get; set; }
public string MobileNo { get; set; }
public string CstNo { get; set; }
public string DlNo { get; set; }
public decimal BalAmt { get; set; }
}
和
CustomerId = row.Field<Int64>("CID")
我认为你的身份是一个长整数。