public static string Format(string tableName, string where,
List<string> nameValuePairs)
{
if (tableName == null || tableName.Length == 0)
throw new ArgumentNullException(tableName);
if (nameValuePairs == null)
throw new ArgumentNullException("nameValuePairs");
if (nameValuePairs.Count % 2 != 0)
throw new ArgumentOutOfRangeException("nameValuePairs");
StringBuilder sb = new StringBuilder("UPDATE ", 64 + where.Length +
nameValuePairs.Count * 16);
sb.Append(SqlSyntax.AutoBracketValid(tableName));
sb.Append(" SET ");
for (int i = 0; i < nameValuePairs.Count - 1; i += 2)
{
if (i > 0)
sb.Append(", ");
sb.Append(SqlSyntax.AutoBracket(nameValuePairs[i]));
sb.Append(" = ");
sb.Append(nameValuePairs[i + 1]);
}
if (where != null && where.Length > 0)
{
sb.Append(" WHERE ");
sb.Append(where);
}
return sb.ToString();
}
}