将数据从db加载到类对象时出错

时间:2012-10-14 17:36:39

标签: c# ienumerable

我有一个班级客户。我正在尝试从访问数据库数据库加载数据。

客户类结构如下:

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中的表结构如下:

enter image description here

现在,当我尝试在客户类中加载数据时,它会抛出一个错误:

“指定的演员表无效。”

用于将数据加载到类我使用下面的代码:

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

2 个答案:

答案 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")

我认为你的身份是一个长整数。