20230819-1
This commit is contained in:
parent
9b37f0477e
commit
cb8ffde7c0
@ -1,5 +1,4 @@
|
|||||||
using anbs_cp.Database.Interfaces;
|
using anbs_cp.Database.Interfaces;
|
||||||
using anbs_cp.Structs;
|
|
||||||
|
|
||||||
using Dapper;
|
using Dapper;
|
||||||
|
|
||||||
@ -276,10 +275,9 @@ public class MySqlEngine: IDbEngine
|
|||||||
|
|
||||||
// Создаю запрос
|
// Создаю запрос
|
||||||
string sql = $"""
|
string sql = $"""
|
||||||
UPDATE
|
UPDATE {tableName}
|
||||||
{tableName}
|
|
||||||
SET
|
SET
|
||||||
({properties})
|
{properties}
|
||||||
WHERE
|
WHERE
|
||||||
{whereConditionColumn}=@{whereConditionColumn}
|
{whereConditionColumn}=@{whereConditionColumn}
|
||||||
""";
|
""";
|
||||||
@ -302,10 +300,11 @@ public class MySqlEngine: IDbEngine
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строки
|
/// Удаляет строки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
public async Task<bool> DeleteAsync (string tableName, KeyValue<string, object> where)
|
public async Task<bool> DeleteAsync<T> (T data, string tableName, string whereConditionColumn) where T : class
|
||||||
{
|
{
|
||||||
// Создаю соединение
|
// Создаю соединение
|
||||||
await using MySqlConnection connection = new(ConnectionString);
|
await using MySqlConnection connection = new(ConnectionString);
|
||||||
@ -315,28 +314,31 @@ public class MySqlEngine: IDbEngine
|
|||||||
DELETE FROM
|
DELETE FROM
|
||||||
{tableName}
|
{tableName}
|
||||||
WHERE
|
WHERE
|
||||||
{where.Key}=@{where.Key}
|
{whereConditionColumn}=@{whereConditionColumn}
|
||||||
""";
|
""";
|
||||||
|
|
||||||
// Выполняю запрос
|
// Выполняю запрос
|
||||||
return await connection.ExecuteAsync(sql, new { where.Value }) > 0;
|
return await connection.ExecuteAsync(sql, data) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строки
|
/// Удаляет строки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
public bool Delete (string tableName, KeyValue<string, object> where) => DeleteAsync(tableName, where).GetAwaiter().GetResult();
|
public bool Delete<T> (T data, string tableName, string whereConditionColumn) where T : class =>
|
||||||
|
DeleteAsync(data, tableName, whereConditionColumn).GetAwaiter().GetResult();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строку
|
/// Удаляет строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
public async Task<bool> DeleteRowAsync (string tableName, KeyValue<string, object> where)
|
public async Task<bool> DeleteRowAsync<T> (T data, string tableName, string whereConditionColumn) where T : class
|
||||||
{
|
{
|
||||||
// Создаю соединение
|
// Создаю соединение
|
||||||
await using MySqlConnection connection = new(ConnectionString);
|
await using MySqlConnection connection = new(ConnectionString);
|
||||||
@ -346,20 +348,22 @@ public class MySqlEngine: IDbEngine
|
|||||||
DELETE FROM
|
DELETE FROM
|
||||||
{tableName}
|
{tableName}
|
||||||
WHERE
|
WHERE
|
||||||
{where.Key}=@{where.Key}
|
{whereConditionColumn}=@{whereConditionColumn}
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
""";
|
""";
|
||||||
|
|
||||||
// Выполняю запрос
|
// Выполняю запрос
|
||||||
return await connection.ExecuteAsync(sql, new { where.Value }) > 0;
|
return await connection.ExecuteAsync(sql, data) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строку
|
/// Удаляет строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
public bool DeleteRow (string tableName, KeyValue<string, object> where) => DeleteRowAsync(tableName, where).GetAwaiter().GetResult();
|
public bool DeleteRow<T>(T data, string tableName, string whereConditionColumn) where T : class =>
|
||||||
|
DeleteRowAsync(data, tableName, whereConditionColumn).GetAwaiter().GetResult();
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
@ -1,6 +1,4 @@
|
|||||||
using anbs_cp.Structs;
|
namespace anbs_cp.Database.Interfaces;
|
||||||
|
|
||||||
namespace anbs_cp.Database.Interfaces;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Интерфейс для работы с базой данных
|
/// Интерфейс для работы с базой данных
|
||||||
@ -112,7 +110,7 @@ public interface IDbEngine
|
|||||||
/// <param name="sql">SQL-запрос</param>
|
/// <param name="sql">SQL-запрос</param>
|
||||||
/// <param name="values">Данные запроса</param>
|
/// <param name="values">Данные запроса</param>
|
||||||
/// <returns>Колонка данных или null</returns>
|
/// <returns>Колонка данных или null</returns>
|
||||||
Task<IEnumerable<T>> GetColAsync<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T>;
|
Task<IEnumerable<T>> GetColAsync<T> (string sql, object values) where T: IComparable, IConvertible, IEquatable<T>;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получает колонку в массиве данных
|
/// Получает колонку в массиве данных
|
||||||
@ -121,7 +119,7 @@ public interface IDbEngine
|
|||||||
/// <param name="sql">SQL-запрос</param>
|
/// <param name="sql">SQL-запрос</param>
|
||||||
/// <param name="values">Данные запроса</param>
|
/// <param name="values">Данные запроса</param>
|
||||||
/// <returns>Колонка данных или null</returns>
|
/// <returns>Колонка данных или null</returns>
|
||||||
IEnumerable<T> GetCol<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T>;
|
IEnumerable<T> GetCol<T> (string sql, object values) where T: IComparable, IConvertible, IEquatable<T>;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение значение единичного поля
|
/// Получение значение единичного поля
|
||||||
@ -130,7 +128,7 @@ public interface IDbEngine
|
|||||||
/// <param name="sql">SQL-запрос</param>
|
/// <param name="sql">SQL-запрос</param>
|
||||||
/// <param name="values">Данные запроса</param>
|
/// <param name="values">Данные запроса</param>
|
||||||
/// <returns>Поле или null</returns>
|
/// <returns>Поле или null</returns>
|
||||||
Task<T?> GetVarAsync<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T>;
|
Task<T?> GetVarAsync<T> (string sql, object values) where T: IComparable, IConvertible, IEquatable<T>;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение значение единичного поля
|
/// Получение значение единичного поля
|
||||||
@ -139,7 +137,7 @@ public interface IDbEngine
|
|||||||
/// <param name="sql">SQL-запрос</param>
|
/// <param name="sql">SQL-запрос</param>
|
||||||
/// <param name="values">Данные запроса</param>
|
/// <param name="values">Данные запроса</param>
|
||||||
/// <returns>Поле или null</returns>
|
/// <returns>Поле или null</returns>
|
||||||
T? GetVar<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T>;
|
T? GetVar<T> (string sql, object values) where T: IComparable, IConvertible, IEquatable<T>;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -151,7 +149,7 @@ public interface IDbEngine
|
|||||||
/// <param name="data">Данные</param>
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
Task<bool> InsertAsync<T> (T data, string tableName) where T : class;
|
Task<bool> InsertAsync<T> (T data, string tableName) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вставляет данные в таблицу
|
/// Вставляет данные в таблицу
|
||||||
@ -160,7 +158,7 @@ public interface IDbEngine
|
|||||||
/// <param name="data">Данные</param>
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
bool Insert<T> (T data, string tableName) where T : class;
|
bool Insert<T> (T data, string tableName) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обновляет строку в таблице
|
/// Обновляет строку в таблице
|
||||||
@ -170,7 +168,7 @@ public interface IDbEngine
|
|||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
Task<bool> UpdateAsync<T> (T data, string tableName, string whereConditionColumn) where T : class;
|
Task<bool> UpdateAsync<T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Обновляет строку в таблице
|
/// Обновляет строку в таблице
|
||||||
@ -180,38 +178,42 @@ public interface IDbEngine
|
|||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
bool Update<T> (T data, string tableName, string whereConditionColumn) where T : class;
|
bool Update<T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строки
|
/// Удаляет строки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
Task<bool> DeleteAsync (string tableName, KeyValue<string, object> where);
|
Task<bool> DeleteAsync<T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строки
|
/// Удаляет строки
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
bool Delete (string tableName, KeyValue<string, object> where);
|
bool Delete<T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строку
|
/// Удаляет строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
Task<bool> DeleteRowAsync (string tableName, KeyValue<string, object> where);
|
Task<bool> DeleteRowAsync <T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаляет строку
|
/// Удаляет строку
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="data">Данные</param>
|
||||||
/// <param name="tableName">Имя таблицы</param>
|
/// <param name="tableName">Имя таблицы</param>
|
||||||
/// <param name="where">Условие</param>
|
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||||
/// <returns>Результат выполнения</returns>
|
/// <returns>Результат выполнения</returns>
|
||||||
bool DeleteRow (string tableName, KeyValue<string, object> where);
|
bool DeleteRow <T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
@ -8,7 +8,7 @@
|
|||||||
<RootNamespace>anbs_cp.Database</RootNamespace>
|
<RootNamespace>anbs_cp.Database</RootNamespace>
|
||||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||||
<PackageId>ANBSoftware.ComponentsPack.Database</PackageId>
|
<PackageId>ANBSoftware.ComponentsPack.Database</PackageId>
|
||||||
<Version>2023.08.19</Version>
|
<Version>2023.08.19.4</Version>
|
||||||
<Company>Александр Бабаев</Company>
|
<Company>Александр Бабаев</Company>
|
||||||
<Product>Набор компонентов ANB Software для работы с БД</Product>
|
<Product>Набор компонентов ANB Software для работы с БД</Product>
|
||||||
<Description>Библиотека полезных методов языка C# для работы с базами данных</Description>
|
<Description>Библиотека полезных методов языка C# для работы с базами данных</Description>
|
||||||
@ -19,10 +19,8 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="ANBSoftware.ComponentsPack" Version="2023.813.1" />
|
|
||||||
<PackageReference Include="Dapper" Version="2.0.151" />
|
<PackageReference Include="Dapper" Version="2.0.151" />
|
||||||
<PackageReference Include="MySqlConnector" Version="2.2.7" />
|
<PackageReference Include="MySqlConnector" Version="2.2.7" />
|
||||||
<PackageReference Include="Z.Dapper.Plus" Version="6.0.2" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user