数据库中的表有时候会有N多个字段,而我们往往只需要操作其中的某一种字段,这种情况,用propertyinfo来实现。

1.一张表有N个对象的时候,我们操作其中的一种属性。例如在数据库中存在学生表(Student)中,只要操作学生的姓名(StuName列)

StuID StuName StuClass StuAge
xiaoliang   小亮 ClassOne 8
xiaoming 小明 ClassTow 9
xiaohua 小华 ClassThree 7

 

 

 

 

 

 

2.而我想要在页面中如下展示数据,并且姓名为可编辑:

学生: 小亮
学生: 小明
学生: 小华

 

 

 

 

3.将Student表中StuID字段中的所有值封装到Name类中

public class Name
{
  public string xiaoliang{get;set;}   public string xiaoming{get;set;}   public string xiaohua{get;set;} }

[HttpGet]
public ActionResult Index()
{
  List<Student> lists = _db.Student.toList(); //拿到数据库中所有的Student对象
  Name names = new Name(); //声明一个Name对象

   PropertyInfo[] Pros = typeof(Name).GetProperties(); //返回存放了Name类的所有属性的数组
   

   foreach (var pro in Pros)  //循环遍历数组
   {
     string proValue = GetOptions(lists, pro.Name); //获取Student对象中的StuName值
     pro.SetValue(names, proValue); //给Name类中的属性进行赋值
   }

   return View(names); //最后得到的Name类中的,所有属性都赋值了姓名

}

//得到源数据的StuName
private string GetOptions(List<Student> source ,string key)
{
  var find = source.FirstOrDefault(o => o.StuName == key);
  if (find != null)
  {
    return find.StuName;
  }
}


//写入源数据的StuName
private void SetOptions(List<Student> source, string key, string value)
{
  var find = source.FirstOrDefault(o => o.OptionID == key);
  if (find != null)
  {
    find.StuName = value;
  }
}

 

 

版权声明:本文为powerworld原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/powerworld/p/14169987.html