repter 使用的是无效数据源。有效数据源必须实现 IListSource 或 IEnumerable。

个人经历
之前遇到这个问题,没有解决,换了其他方式实现了我想要的功能,
今天又遇到这个问题,同样的调用方式,有的可以,有的不可以,于是仔细比对了代码
发现:

          ShippingList objShippingList =new ShippingList();
                while (objReader.Read())
                {
                    objShippingList =new ShippingList()
                    {
                        ShippingDate = objReader["ShippingDate"].ToString(),
                        ShippingStatus = objReader["ShippingStatus"].ToString(),
                        Quantity = Convert.ToInt32(objReader["Quantity"]),
                        ProductName = objReader["ProductName"].ToString(),
                        SalesTime = objReader["SalesTime"].ToString(),
                        ServiceTime = objReader["ServiceTime"].ToString(),
                        SubTotalMoney = Convert.ToDecimal(objReader["SubTotalMoney"]),
                        UnitPrice = Convert.ToDecimal(objReader["UnitPrice"]),
                        Product = objReader["Product"].ToString(),
                        SalesListDetailId= objReader["SalesListDetailId"].ToString(),
                        Discount = Convert.ToInt32(objReader["Discount"])
                    };
                }
                objReader.Close();
                return objShippingList ;

而正确的解决方案是:

  List<ShippingList> objlist=new List<ShippingList>();
                while (objReader.Read())
                {
                    objlist.Add( new ShippingList()
                    {
                        ShippingDate = objReader["ShippingDate"].ToString(),
                        ShippingStatus = objReader["ShippingStatus"].ToString(),
                        Quantity = Convert.ToInt32(objReader["Quantity"]),
                        ProductName = objReader["ProductName"].ToString(),
                        SalesTime = objReader["SalesTime"].ToString(),
                        ServiceTime = objReader["ServiceTime"].ToString(),
                        SubTotalMoney = Convert.ToDecimal(objReader["SubTotalMoney"]),
                        UnitPrice = Convert.ToDecimal(objReader["UnitPrice"]),
                        Product = objReader["Product"].ToString(),
                        SalesListDetailId= objReader["SalesListDetailId"].ToString(),
                        Discount = Convert.ToInt32(objReader["Discount"])
                    });
                }
                objReader.Close();
                return objlist;

封装在列表集合就可以了,不能封装成object 对象集合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值