DotNet · 2022年4月22日

使用反射写入实体类数据示例

示例中是通过数据库读取相关字段的值,然后根据字段名称写入相应字段的值,
这种方法适合需要针对特定字段更新值时比较有用,如果是整类的生成写入,则不如使用
JSON序列化和反序列化的方法方便快捷。

private void ReaderToObject(IDataReader reader,object targetObj)
        {
            for(int i=0;i<reader.FieldCount;i++)
            {
                System.Reflection.PropertyInfo propertyInfo=targetObj.GetType().GetProperty(reader.GetName(i));
                if(propertyInfo!=null)
                {
                    if(reader.GetValue(i)!=DBNull.Value)
                    {
                        if(propertyInfo.PropertyType.IsEnum)
                        {
                            propertyInfo.SetValue(targetObj,
                                                  Enum.ToObject(propertyInfo.PropertyType,reader.GetValue(i)),
                                                  null);
                        }
                        else
                        {
                            propertyInfo.SetValue(targetObj,reader.GetValue(i),null);
                        }
                    }
                }
            }
        }
 
此种方法需要注意的是
  1. 实体类的命名最好与数据库中命名一致,如果有可能不一致,则需要有判断过程
 

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞