|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
|
|
|
namespace WeighBusiness.Utils.SqlUtils
|
|
|
{
|
|
|
public class UpdateUtil
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新
|
|
|
/// </summary>
|
|
|
/// <param name="table">表</param>
|
|
|
/// <param name="keyColumn">条件的列名</param>
|
|
|
/// <param name="keyColumnValue">条件的值</param>
|
|
|
/// <param name="fieldAndValuePairs">更新的字段及其值。因此必须是偶数对</param>
|
|
|
/// <returns>更新失败返回false,否则返回true</returns>
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取更新的sql语句(以换行结尾)
|
|
|
/// <para>如果没有更新的字段和值,则返回string.Empty</para>
|
|
|
/// </summary>
|
|
|
/// <param name="table">表</param>
|
|
|
/// <param name="keyColumn">条件的列名</param>
|
|
|
/// <param name="keyColumnValue">条件的值</param>
|
|
|
/// <param name="fieldAndValuePairs">更新的字段及其值。因此必须是偶数对</param>
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取更新的sql语句.
|
|
|
/// <para>如果没有更新的字段和值,则返回string.Empty</para>
|
|
|
/// </summary>
|
|
|
/// <param name="table">表</param>
|
|
|
/// <param name="keyColumn">条件的列名</param>
|
|
|
/// <param name="keyColumnValue">条件的值</param>
|
|
|
/// <param name="fieldAndValuePairs">更新的字段及其值</param>
|
|
|
/// <returns></returns>
|
|
|
public static string GetUpdateString(string table, string keyColumn, string keyColumnValue, Dictionary<string, string> 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;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|