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}]>.");
|
_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)
|
public static int TransactionQuery(List<SqliteCommand> cmds)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user