using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WeighBusiness.Utils.SqlUtils { public class UpdateUtil { /// /// 更新 /// /// 表 /// 条件的列名 /// 条件的值 /// 更新的字段及其值。因此必须是偶数对 /// 更新失败返回false,否则返回true public static bool Update(string table, string keyColumn, string keyColumnValue, params string[] fieldAndValuePairs) { string updateStr = GetUpdateString(table, keyColumn, keyColumnValue, fieldAndValuePairs); if (string.IsNullOrEmpty(updateStr)) return true; return SqlHelperEx.DoExecuteNonQuery(updateStr); } /// /// 获取更新的sql语句(以换行结尾) /// 如果没有更新的字段和值,则返回string.Empty /// /// 表 /// 条件的列名 /// 条件的值 /// 更新的字段及其值。因此必须是偶数对 public static string GetUpdateString(string table, string keyColumn, string keyColumnValue, params string[] fieldAndValuePairs) { string updateStr = string.Empty; if (fieldAndValuePairs == null || fieldAndValuePairs.Length == 0) return updateStr; if (fieldAndValuePairs.Length % 2 == 1) throw new ArgumentException("fieldAndValuePairs参数必须为偶数个:分别对应字段及其值"); string begin = "update " + table + " set "; string end = string.Format(" where " + keyColumn + @" = '{0}' ", keyColumnValue); for (int i = 0; i < fieldAndValuePairs.Length; i++) { string field = fieldAndValuePairs[i]; i++; string value = fieldAndValuePairs[i]; updateStr += field + "='" + value + "',"; } updateStr = updateStr.Substring(0, updateStr.Length - 1); updateStr = begin + updateStr + end; return updateStr; } /// /// 获取更新的sql语句. /// 如果没有更新的字段和值,则返回string.Empty /// /// 表 /// 条件的列名 /// 条件的值 /// 更新的字段及其值 /// public static string GetUpdateString(string table, string keyColumn, string keyColumnValue, Dictionary fieldAndValuePairs) { string updateStr = string.Empty; if (fieldAndValuePairs == null || fieldAndValuePairs.Count == 0) return updateStr; string begin = "update " + table + " set "; string end = string.Format(" where " + keyColumn + @" = '{0}'", keyColumnValue); //for (int i = 0; i < fieldAndValuePairs.Count; i++) { // string field = fieldAndValuePairs[i]; // i++; // string value = fieldAndValuePairs[i]; // updateStr += field + "='" + value + "',"; //} foreach (var item in fieldAndValuePairs) { updateStr += item.Key + "='" + item.Value + "',"; } updateStr = updateStr.Substring(0, updateStr.Length - 1); updateStr = begin + updateStr + end; return updateStr; } } }