利用反射,给model类赋值

    /// <summary>
    /// 给model类自动赋值

    /// </summary>
    /// <param name="sqlstring">获取查询一个model实例的sql语句</param>
    /// <param name="obj">model实例对象</param>
    /// <returns></returns>
    public object selmodel(string sqlstring,object obj)
    {
        DataTable dtsell = lcommonbll.GetTable(sqlstring);
        int count = dtsell.Rows.Count;
        if (count == 0)
        {
            return null;
        }
        else
        {
            DataRow dr = dtsell.Rows[0];
            #region 另一种方法
            //foreach (DataColumn col in dr.Table.Columns)
            //{
            //    PropertyInfo pt = seller.GetType().GetProperty(col.ColumnName);
            //    if (String.IsNullOrEmpty(dr[col.ColumnName].ToString()))
            //    {
            //        break;
            //    }
            //    else
            //    {
            //        pt.SetValue(seller, dtsell.Rows[0][0], null);
            //    }
            //}
            #endregion
            foreach (System.Reflection.PropertyInfo pi in obj.GetType().GetProperties())
            {
                if (pi.CanWrite)
                {
                    try
                    {

                        if (dtsell.Rows[0][pi.Name]!=null)
                        {
                            pi.SetValue(obj, dtsell.Rows[0][pi.Name], null);
                        }

                        else
                        {
                            pi.SetValue(obj, null, null);
                        }

                    }
                    catch
                    {
                        pi.SetValue(obj, null, null);
                    }
                }
            }
            return obj;
        }
    }

 

 

.CS调用

 

 Seller seller = new Seller();//实体类
bind BIND = new bind();//绑定方法类
seller = (Seller)BIND.selmodel("select * from seller where SID=2", seller);//赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值