asp.net 使用反射给给实体赋值 

 实体类继承此基类

using System.Reflection;
using System.Data.SqlClient;
using System.Data;
namespace Model
{
    public class Base
    {
        protected bool isNull = true;
        public bool IsNull
        {
            get { return isNull; }
            set { isNull = value; }
        }
        protected void SetValue(object info)
        {
            foreach (FieldInfo fi in info.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
            {
                fi.SetValue(this, fi.GetValue(info));
            }
        }
        public void SetValue(SqlDataReader dr)
        {
            if (dr.Read())
            {
                foreach (FieldInfo fi in this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
                {
                    if (fi.Name != "isNull")
                    {
                        fi.SetValue(this, dr[fi.Name]);
                    }
                }
                this.isNull = false;
            }
            dr.Close();
        }

        public void SetValue(DataTable dt)
        {
            if (dt != null && dt.Rows.Count > 0)
            {     
                foreach (DataRow row in dt.Rows)
                {
                    foreach (DataColumn column in dt.Columns)
                    {
                        FieldInfo fi = this.GetType().GetField(column.ColumnName);
                        if (fi.Name != "isNull")
                        {
                            fi.SetValue(this, row[fi.Name]);
                        }
                    } 
                } 
            }
        }

    }
}
View Code

相关文章:

  • 2022-12-23
  • 2022-02-07
  • 2022-02-01
  • 2022-03-02
  • 2022-12-23
  • 2022-02-11
  • 2022-01-18
猜你喜欢
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2022-01-19
  • 2022-12-23
  • 2022-03-10
相关资源
相似解决方案