diff --git a/anbs_cpdb/Classes/MySqlEngine.cs b/anbs_cpdb/Classes/MySqlEngine.cs
index 20dee85..8f328ca 100644
--- a/anbs_cpdb/Classes/MySqlEngine.cs
+++ b/anbs_cpdb/Classes/MySqlEngine.cs
@@ -1,5 +1,4 @@
using anbs_cp.Database.Interfaces;
-using anbs_cp.Structs;
using Dapper;
@@ -276,10 +275,9 @@ public class MySqlEngine: IDbEngine
// Создаю запрос
string sql = $"""
- UPDATE
- {tableName}
+ UPDATE {tableName}
SET
- ({properties})
+ {properties}
WHERE
{whereConditionColumn}=@{whereConditionColumn}
""";
@@ -302,10 +300,11 @@ public class MySqlEngine: IDbEngine
///
/// Удаляет строки
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- public async Task DeleteAsync (string tableName, KeyValue where)
+ public async Task DeleteAsync (T data, string tableName, string whereConditionColumn) where T : class
{
// Создаю соединение
await using MySqlConnection connection = new(ConnectionString);
@@ -315,28 +314,31 @@ public class MySqlEngine: IDbEngine
DELETE FROM
{tableName}
WHERE
- {where.Key}=@{where.Key}
+ {whereConditionColumn}=@{whereConditionColumn}
""";
// Выполняю запрос
- return await connection.ExecuteAsync(sql, new { where.Value }) > 0;
+ return await connection.ExecuteAsync(sql, data) > 0;
}
///
/// Удаляет строки
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- public bool Delete (string tableName, KeyValue where) => DeleteAsync(tableName, where).GetAwaiter().GetResult();
+ public bool Delete (T data, string tableName, string whereConditionColumn) where T : class =>
+ DeleteAsync(data, tableName, whereConditionColumn).GetAwaiter().GetResult();
///
/// Удаляет строку
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- public async Task DeleteRowAsync (string tableName, KeyValue where)
+ public async Task DeleteRowAsync (T data, string tableName, string whereConditionColumn) where T : class
{
// Создаю соединение
await using MySqlConnection connection = new(ConnectionString);
@@ -346,20 +348,22 @@ public class MySqlEngine: IDbEngine
DELETE FROM
{tableName}
WHERE
- {where.Key}=@{where.Key}
+ {whereConditionColumn}=@{whereConditionColumn}
LIMIT 1
""";
// Выполняю запрос
- return await connection.ExecuteAsync(sql, new { where.Value }) > 0;
+ return await connection.ExecuteAsync(sql, data) > 0;
}
///
/// Удаляет строку
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- public bool DeleteRow (string tableName, KeyValue where) => DeleteRowAsync(tableName, where).GetAwaiter().GetResult();
+ public bool DeleteRow(T data, string tableName, string whereConditionColumn) where T : class =>
+ DeleteRowAsync(data, tableName, whereConditionColumn).GetAwaiter().GetResult();
#endregion
}
\ No newline at end of file
diff --git a/anbs_cpdb/Interfaces/IDbEngine.cs b/anbs_cpdb/Interfaces/IDbEngine.cs
index 672eed1..8499723 100644
--- a/anbs_cpdb/Interfaces/IDbEngine.cs
+++ b/anbs_cpdb/Interfaces/IDbEngine.cs
@@ -1,6 +1,4 @@
-using anbs_cp.Structs;
-
-namespace anbs_cp.Database.Interfaces;
+namespace anbs_cp.Database.Interfaces;
///
/// Интерфейс для работы с базой данных
@@ -112,7 +110,7 @@ public interface IDbEngine
/// SQL-запрос
/// Данные запроса
/// Колонка данных или null
- Task> GetColAsync (string sql, object values) where T : IComparable, IConvertible, IEquatable;
+ Task> GetColAsync (string sql, object values) where T: IComparable, IConvertible, IEquatable;
///
/// Получает колонку в массиве данных
@@ -121,7 +119,7 @@ public interface IDbEngine
/// SQL-запрос
/// Данные запроса
/// Колонка данных или null
- IEnumerable GetCol (string sql, object values) where T : IComparable, IConvertible, IEquatable;
+ IEnumerable GetCol (string sql, object values) where T: IComparable, IConvertible, IEquatable;
///
/// Получение значение единичного поля
@@ -130,7 +128,7 @@ public interface IDbEngine
/// SQL-запрос
/// Данные запроса
/// Поле или null
- Task GetVarAsync (string sql, object values) where T : IComparable, IConvertible, IEquatable;
+ Task GetVarAsync (string sql, object values) where T: IComparable, IConvertible, IEquatable;
///
/// Получение значение единичного поля
@@ -139,7 +137,7 @@ public interface IDbEngine
/// SQL-запрос
/// Данные запроса
/// Поле или null
- T? GetVar (string sql, object values) where T : IComparable, IConvertible, IEquatable;
+ T? GetVar (string sql, object values) where T: IComparable, IConvertible, IEquatable;
#endregion
@@ -151,7 +149,7 @@ public interface IDbEngine
/// Данные
/// Имя таблицы
/// Результат выполнения
- Task InsertAsync (T data, string tableName) where T : class;
+ Task InsertAsync (T data, string tableName) where T: class;
///
/// Вставляет данные в таблицу
@@ -160,7 +158,7 @@ public interface IDbEngine
/// Данные
/// Имя таблицы
/// Результат выполнения
- bool Insert (T data, string tableName) where T : class;
+ bool Insert (T data, string tableName) where T: class;
///
/// Обновляет строку в таблице
@@ -170,7 +168,7 @@ public interface IDbEngine
/// Имя таблицы
/// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- Task UpdateAsync (T data, string tableName, string whereConditionColumn) where T : class;
+ Task UpdateAsync (T data, string tableName, string whereConditionColumn) where T: class;
///
/// Обновляет строку в таблице
@@ -180,38 +178,42 @@ public interface IDbEngine
/// Имя таблицы
/// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- bool Update (T data, string tableName, string whereConditionColumn) where T : class;
+ bool Update (T data, string tableName, string whereConditionColumn) where T: class;
///
/// Удаляет строки
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- Task DeleteAsync (string tableName, KeyValue where);
+ Task DeleteAsync (T data, string tableName, string whereConditionColumn) where T: class;
///
/// Удаляет строки
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- bool Delete (string tableName, KeyValue where);
+ bool Delete (T data, string tableName, string whereConditionColumn) where T: class;
///
/// Удаляет строку
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- Task DeleteRowAsync (string tableName, KeyValue where);
+ Task DeleteRowAsync (T data, string tableName, string whereConditionColumn) where T: class;
///
/// Удаляет строку
///
+ /// Данные
/// Имя таблицы
- /// Условие
+ /// Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data
/// Результат выполнения
- bool DeleteRow (string tableName, KeyValue where);
+ bool DeleteRow (T data, string tableName, string whereConditionColumn) where T: class;
#endregion
}
\ No newline at end of file
diff --git a/anbs_cpdb/anbs_cpdb.csproj b/anbs_cpdb/anbs_cpdb.csproj
index a96949b..730b781 100644
--- a/anbs_cpdb/anbs_cpdb.csproj
+++ b/anbs_cpdb/anbs_cpdb.csproj
@@ -8,7 +8,7 @@
anbs_cp.Database
True
ANBSoftware.ComponentsPack.Database
- 2023.08.19
+ 2023.08.19.4
Александр Бабаев
Набор компонентов ANB Software для работы с БД
Библиотека полезных методов языка C# для работы с базами данных
@@ -19,10 +19,8 @@
-
-