Add UpdateQuery to DB controller

This commit is contained in:
Daniel_I_Am 2020-06-05 03:09:04 +02:00
parent 8e53d012c1
commit f4472e044d
No known key found for this signature in database
GPG Key ID: 80C428FCC9743E84

View File

@ -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)
{ {