/// <summary> /// 执行更新修改操作 /// </summary> /// <param name="table">要修改的表</param> /// <param name="obj">实体对象</param> /// <returns>受影响行数</returns> public static int UpdateWithModify(string table, object obj) { string columnParas = string.Empty; string columnNames = BuildSql.GetSqlColumnAndSqlParams(table, out columnParas, true); string strSql = "UPDATE " + table + " SET "; string[] pas = columnParas.Split(','); string[] names = columnNames.Split(','); List <SqlParameter> paras = new List <SqlParameter>();//参数集合 for (int i = 0; i < pas.Length; i++) { if (i != 0) { strSql += names[i] + "=" + pas[i] + ","; } object v = BuildSql.GetProValue(obj, pas[i]); //返回属性类型的值 SqlParameter pa = new SqlParameter(pas[i], v); //创建集合对象元素 paras.Add(pa); //加入集合 } strSql = strSql.Substring(0, strSql.Length - 1); strSql += " where " + names[0] + "=" + pas[0]; return(SqlHelper.ExcuteNonQuery(strSql, paras.ToArray())); }
/// <summary> /// 获取类中属性类型的值 /// </summary> /// <param name="obj">Model对象</param> /// <param name="para">参数命令</param> /// <returns></returns> public static object GetProValue(object obj, string para) { Type Ts = obj.GetType(); string temp = para.Substring(para.IndexOf("@") + 1); //获得属性名称 string fieldValue = BuildSql.GetProValue(BuildSql.FirstUpper(temp), obj); //获的属性值 object v = Convert.ChangeType(fieldValue, Ts.GetProperty(BuildSql.FirstUpper(temp)).PropertyType); //转化为属性的类型 return(v); }
/// <summary> /// 执行插入操作 /// </summary> /// <param name="table">要插入的表</param> /// <param name="obj">实体对象</param> /// <param name="newID">返回插入新的ID</param> /// <returns>受影响的行数</returns> public static int Add(string table, object obj, out int newID) { newID = 0; int res; string columnParas = string.Empty; string columnNames = BuildSql.GetSqlColumnAndSqlParams(table, out columnParas, false); string strSql = "INSERT " + table + "(" + columnNames + ") values(" + columnParas + ");select @@IDENTITY"; string[] pas = columnParas.Split(','); List <SqlParameter> paras = new List <SqlParameter>();//参数集合 for (int i = 0; i < pas.Length; i++) { object v = BuildSql.GetProValue(obj, pas[i]); //返回属性类型的值 SqlParameter pa = new SqlParameter(pas[i], v); //创建集合对象元素 paras.Add(pa); //加入集合 } res = SqlHelper.ExcuteScalar(strSql, paras.ToArray()); newID = res; return(res); }