Add UpdateQuery to DB controller
This commit is contained in:
parent
8e53d012c1
commit
f4472e044d
@ -102,6 +102,56 @@ namespace ChaosBot.Database
|
||||
_logger.Fatal($"Controllers.DBWork.RawQuery: Exception [{ex}] thrown, <[{ex.Message}]>.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateQuery(string table, Dictionary<string, object> values, Dictionary<string, object> parameters)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (_conn)
|
||||
{
|
||||
_conn.Open();
|
||||
|
||||
SqliteCommand cmd = _conn.CreateCommand();
|
||||
StringBuilder commandText = new StringBuilder();
|
||||
commandText.Append("UPDATE OR FAIL ");
|
||||
commandText.Append(table);
|
||||
commandText.Append(" SET ");
|
||||
|
||||
List<string> updateList = new List<string>();
|
||||
foreach (string key in values.Keys)
|
||||
{
|
||||
updateList.Add($"{key}=@val_{key} ");
|
||||
cmd.Parameters.AddWithValue($@"val_{key}", values.GetValueOrDefault(key));
|
||||
}
|
||||
|
||||
commandText.Append(string.Join(", ", updateList));
|
||||
|
||||
List<string> filterList = new List<string>();
|
||||
foreach (string key in parameters.Keys)
|
||||
{
|
||||
filterList.Add($"{key}=@fil_{key} ");
|
||||
cmd.Parameters.AddWithValue($"@fil_{key}", parameters.GetValueOrDefault(key));
|
||||
}
|
||||
|
||||
if (filterList.Count > 0)
|
||||
{
|
||||
commandText.Append("WHERE ");
|
||||
commandText.Append(string.Join(", ", filterList));
|
||||
}
|
||||
|
||||
cmd.CommandText = commandText.ToString();
|
||||
|
||||
cmd.Prepare();
|
||||
cmd.ExecuteNonQuery();
|
||||
|
||||
_conn.Close();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.Fatal($"Controllers.DBWork.RawQuery: Exception [{ex}] thrown, <[{ex.Message}]>.");
|
||||
}
|
||||
}
|
||||
|
||||
public static int TransactionQuery(List<SqliteCommand> cmds)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user