20230819-1
This commit is contained in:
parent
9b37f0477e
commit
cb8ffde7c0
@ -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
|
||||
/// <summary>
|
||||
/// Удаляет строки
|
||||
/// </summary>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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);
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет строки
|
||||
/// </summary>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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);
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет строку
|
||||
/// </summary>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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
|
||||
}
|
@ -1,6 +1,4 @@
|
||||
using anbs_cp.Structs;
|
||||
|
||||
namespace anbs_cp.Database.Interfaces;
|
||||
namespace anbs_cp.Database.Interfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для работы с базой данных
|
||||
@ -112,7 +110,7 @@ public interface IDbEngine
|
||||
/// <param name="sql">SQL-запрос</param>
|
||||
/// <param name="values">Данные запроса</param>
|
||||
/// <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>
|
||||
/// Получает колонку в массиве данных
|
||||
@ -121,7 +119,7 @@ public interface IDbEngine
|
||||
/// <param name="sql">SQL-запрос</param>
|
||||
/// <param name="values">Данные запроса</param>
|
||||
/// <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>
|
||||
/// Получение значение единичного поля
|
||||
@ -130,7 +128,7 @@ public interface IDbEngine
|
||||
/// <param name="sql">SQL-запрос</param>
|
||||
/// <param name="values">Данные запроса</param>
|
||||
/// <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>
|
||||
/// Получение значение единичного поля
|
||||
@ -139,7 +137,7 @@ public interface IDbEngine
|
||||
/// <param name="sql">SQL-запрос</param>
|
||||
/// <param name="values">Данные запроса</param>
|
||||
/// <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
|
||||
|
||||
@ -151,7 +149,7 @@ public interface IDbEngine
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <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>
|
||||
/// Вставляет данные в таблицу
|
||||
@ -160,7 +158,7 @@ public interface IDbEngine
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <returns>Результат выполнения</returns>
|
||||
bool Insert<T> (T data, string tableName) where T : class;
|
||||
bool Insert<T> (T data, string tableName) where T: class;
|
||||
|
||||
/// <summary>
|
||||
/// Обновляет строку в таблице
|
||||
@ -170,7 +168,7 @@ public interface IDbEngine
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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>
|
||||
/// Обновляет строку в таблице
|
||||
@ -180,38 +178,42 @@ public interface IDbEngine
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <returns>Результат выполнения</returns>
|
||||
bool Delete (string tableName, KeyValue<string, object> where);
|
||||
bool Delete<T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||
|
||||
/// <summary>
|
||||
/// Удаляет строку
|
||||
/// </summary>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <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>
|
||||
/// <param name="data">Данные</param>
|
||||
/// <param name="tableName">Имя таблицы</param>
|
||||
/// <param name="where">Условие</param>
|
||||
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
|
||||
/// <returns>Результат выполнения</returns>
|
||||
bool DeleteRow (string tableName, KeyValue<string, object> where);
|
||||
bool DeleteRow <T> (T data, string tableName, string whereConditionColumn) where T: class;
|
||||
#endregion
|
||||
}
|
@ -8,7 +8,7 @@
|
||||
<RootNamespace>anbs_cp.Database</RootNamespace>
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<PackageId>ANBSoftware.ComponentsPack.Database</PackageId>
|
||||
<Version>2023.08.19</Version>
|
||||
<Version>2023.08.19.4</Version>
|
||||
<Company>Александр Бабаев</Company>
|
||||
<Product>Набор компонентов ANB Software для работы с БД</Product>
|
||||
<Description>Библиотека полезных методов языка C# для работы с базами данных</Description>
|
||||
@ -19,10 +19,8 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ANBSoftware.ComponentsPack" Version="2023.813.1" />
|
||||
<PackageReference Include="Dapper" Version="2.0.151" />
|
||||
<PackageReference Include="MySqlConnector" Version="2.2.7" />
|
||||
<PackageReference Include="Z.Dapper.Plus" Version="6.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
Loading…
x
Reference in New Issue
Block a user