public int UpdateBymodel(MODEL.Aticle model)//传递过来的实体对象
{
StringBuilder sbStr = new StringBuilder();
Type type = model.GetType();//反射出类的类型
PropertyInfo[] p = type.GetProperties();//得到类的属性
List<SqlParameter> list = new List<SqlParameter>();//参数泛型
sbStr.Append("update Aticle set ");
foreach (PropertyInfo p1 in p)
{
if (p1.Name != "AID" && p1.Name != "AAddtime")
{
if (p1.GetValue(model, null) != null)
{
sbStr.Append(p1.Name + "=@" + p1.Name + ",");
list.Add(new SqlParameter(p1.Name, p1.GetValue(model, null)));//p1.GetValue(object,object[] index);经常出错的地方
}
}
}
string sqlstr = sbStr.ToString().Trim(',')+ " where AID=@AID";
list.Add(new SqlParameter("AID", model.AID));
return dbHelper.ExecuteNonQuery(sqlstr, list.ToArray());
}
练习使用反射来写SQL update语句,