// 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBuilder sbSql = new StringBuilder("update Students set "); // 先获得model 的Type类型 Type modeType = model.GetType(); // 通过Type类型得到它所有的公开属性 PropertyInfo[] pros = modeType.GetProperties(); List<SqlParameter> paras = new List<SqlParameter>(); foreach (PropertyInfo pi in pros) { // 如果不是主键则追加sql字符串 if (!pi.Name.Equals("SID")) { // 判断属性值是否为空 f (pi.GetValue(model, null) != null && !pi.GetValue(model, null).ToString().Equals("")) { sbSql.Append(pi.Name + "=@" + pi.Name + ",");//SID=@SID // 增加参数到List<SqlParameter>里 paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null))); } } } // 去掉最后一个 , 豆号 string strSql = sbSql.ToString().Trim(','); strSql += " where SID=@SID"; // 记得加上主键 paras.Add(new SqlParameter("@SID", model.SID)); return dbHelper.ExecuteCommand(strSql, paras.ToArray()) > 0; // 最终sbSql生成的SQL为:update Students set Name=@Name,Age=@Age,Clazz=@Clazz where SID=@SID }