Фискы вставки и редактирования

This commit is contained in:
Никита Потапов 2024-05-15 14:49:38 +04:00
parent 508b9fca0e
commit 48f3831c95

View File

@ -39,6 +39,7 @@ namespace MedicalPostgresqlDatabase
connection.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM {TABLE_NAME} WHERE {PRIMARY_KEY_COLUMN_NAME} = @id", connection);
cmd.Parameters.AddWithValue("@id", id);
_logger.LogDebug(cmd.CommandText);
Stopwatch stopwatch = new();
stopwatch.Start();
cmd.ExecuteNonQuery();
@ -53,8 +54,9 @@ namespace MedicalPostgresqlDatabase
{
using var connection = GetConnection();
connection.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM {TABLE_NAME} WHERE {PRIMARY_KEY_COLUMN_NAME} = @id", connection);
cmd.Parameters.AddWithValue("@id", id);
using var cmd = new NpgsqlCommand($"SELECT * FROM {TABLE_NAME} WHERE {PRIMARY_KEY_COLUMN_NAME} = @{PRIMARY_KEY_COLUMN_NAME}", connection);
cmd.Parameters.AddWithValue($"@{PRIMARY_KEY_COLUMN_NAME}", id);
_logger.LogDebug(cmd.CommandText);
Stopwatch stopwatch = new();
stopwatch.Start();
using var reader = cmd.ExecuteReader();
@ -76,6 +78,7 @@ namespace MedicalPostgresqlDatabase
using var connection = GetConnection();
connection.Open();
using var cmd = new NpgsqlCommand($"SELECT * FROM {TABLE_NAME} ORDER BY {PRIMARY_KEY_COLUMN_NAME}", connection);
_logger.LogDebug(cmd.CommandText);
Stopwatch stopwatch = new();
stopwatch.Start();
using var reader = cmd.ExecuteReader();
@ -101,14 +104,14 @@ namespace MedicalPostgresqlDatabase
string valuesString = "";
foreach (var key in dict.Keys)
{
namesString = string.Join(", ", namesString, $"{key}");
namesString += (string.IsNullOrEmpty(namesString) ? "" : ", ") + $"{key}";
if (key == PRIMARY_KEY_COLUMN_NAME)
valuesString = string.Join(", ", valuesString, $"nextval('{PRIMARY_KEY_SEQUENCE_NAME}')");
valuesString += (string.IsNullOrEmpty(valuesString) ? "" : ", ") + $"nextval('{PRIMARY_KEY_SEQUENCE_NAME}')";
else
valuesString = string.Join(", ", valuesString, $"@{key}");
valuesString += (string.IsNullOrEmpty(valuesString) ? "" : ", ") + $"@{key}";
}
namesString = $"({namesString})";
valuesString += $"({valuesString})";
valuesString = $"({valuesString})";
string[] queryBuilder = {
@ -125,6 +128,7 @@ namespace MedicalPostgresqlDatabase
{
cmd.Parameters.AddWithValue($"@{key}", dict[key]);
}
_logger.LogDebug(cmd.CommandText);
Stopwatch stopwatch = new();
stopwatch.Start();
cmd.ExecuteNonQuery();
@ -146,28 +150,35 @@ namespace MedicalPostgresqlDatabase
foreach (var key in dict.Keys)
{
if (key != PRIMARY_KEY_COLUMN_NAME)
setString = string.Join(", ", setString, $"{key} = @{key}");
setString += (string.IsNullOrEmpty(setString) ? "" : ", ") + $"{key} = @{key}";
}
setString = $"({setString})";
string[] queryBuilder = {
"UPDATE",
TABLE_NAME,
"SET",
setString,
"VALUES",
setString,
"WHERE",
$"{PRIMARY_KEY_COLUMN_NAME} = @{PRIMARY_KEY_COLUMN_NAME}"
};
using var cmd = new NpgsqlCommand(string.Join(' ', queryBuilder), connection);
foreach (var key in dict.Keys)
{
cmd.Parameters.AddWithValue($"@{key}", dict[key]);
if (key == PRIMARY_KEY_COLUMN_NAME)
{
cmd.Parameters.AddWithValue($"@{key}", Convert.ToInt32(dict[key]));
}
else
{
cmd.Parameters.AddWithValue($"@{key}", dict[key]);
}
}
_logger.LogDebug(cmd.CommandText);
Stopwatch stopwatch = new();
stopwatch.Start();
cmd.ExecuteNonQuery();