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;
}
}
}