This commit is contained in:
2023-08-27 09:44:19 +03:00
parent cb8ffde7c0
commit b09af0c79f
5 changed files with 179 additions and 32 deletions

View File

@@ -26,7 +26,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">Запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Количество затронутых строк</returns>
public async Task<int> ExecuteAsync (string sql, object values)
public async Task<int> ExecuteAsync (string sql, object? values = null)
{
// Подключаемся к БД
await using MySqlConnection connection = new(ConnectionString);
@@ -44,7 +44,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">Запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Количество затронутых строк</returns>
public int Execute (string sql, object values) => ExecuteAsync(sql, values).GetAwaiter().GetResult();
public int Execute (string sql, object? values = null) => ExecuteAsync(sql, values).GetAwaiter().GetResult();
/// <summary>
/// Запрос
@@ -53,7 +53,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">Запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Возвращает массив типа <see cref="T"/> или значение по умолчанию</returns>
public async Task<IEnumerable<T>> QueryAsync<T> (string sql, object values)
public async Task<IEnumerable<T>> QueryAsync<T> (string sql, object? values = null)
{
// Подключаемся к БД
await using MySqlConnection connection = new(ConnectionString);
@@ -72,7 +72,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">Запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Возвращает массив типа <see cref="T"/> или значение по умолчанию</returns>
public IEnumerable<T> Query<T> (string sql, object values) => QueryAsync<T>(sql, values).GetAwaiter().GetResult();
public IEnumerable<T> Query<T> (string sql, object? values = null) => QueryAsync<T>(sql, values).GetAwaiter().GetResult();
/// <summary>
/// Запрос строки
@@ -81,7 +81,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">Запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Возвращает массив типа <see cref="T"/> или значение по умолчанию</returns>
public async Task<T?> QueryRowAsync<T> (string sql, object values)
public async Task<T?> QueryRowAsync<T> (string sql, object? values = null)
{
// Подключаемся к БД
await using MySqlConnection connection = new(ConnectionString);
@@ -100,7 +100,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">Запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Возвращает массив типа <see cref="T"/> или значение по умолчанию</returns>
public T? QueryRow<T> (string sql, object values) => QueryRowAsync<T>(sql, values).GetAwaiter().GetResult();
public T? QueryRow<T> (string sql, object? values = null) => QueryRowAsync<T>(sql, values).GetAwaiter().GetResult();
#endregion
@@ -113,7 +113,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Массив результата запроса</returns>
public async Task<IEnumerable<T>> GetResultsAsync<T> (string sql, object values) => await QueryAsync<T>(sql, values);
public async Task<IEnumerable<T>> GetResultsAsync<T> (string sql, object? values = null) => await QueryAsync<T>(sql, values);
/// <summary>
/// Получает массив данных (SELECT * FROM...)
@@ -122,7 +122,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Массив результата запроса</returns>
public IEnumerable<T> GetResults<T> (string sql, object values) => GetResultsAsync<T>(sql, values).GetAwaiter().GetResult();
public IEnumerable<T> GetResults<T> (string sql, object? values = null) => GetResultsAsync<T>(sql, values).GetAwaiter().GetResult();
/// <summary>
/// Получает строку в массиве данных
@@ -131,7 +131,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Строки данных или null</returns>
public async Task<T?> GetRowAsync<T> (string sql, object values)
public async Task<T?> GetRowAsync<T> (string sql, object? values = null)
{
// Подключаемся к БД
await using MySqlConnection connection = new(ConnectionString);
@@ -150,7 +150,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Строки данных или null</returns>
public T? GetRow<T> (string sql, object values) => GetRowAsync<T>(sql, values).GetAwaiter().GetResult();
public T? GetRow<T> (string sql, object? values = null) => GetRowAsync<T>(sql, values).GetAwaiter().GetResult();
/// <summary>
/// Получает колонку в массиве данных
@@ -159,7 +159,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Колонка данных или null</returns>
public async Task<IEnumerable<T>> GetColAsync<T> (string sql, object values)
public async Task<IEnumerable<T>> GetColAsync<T> (string sql, object? values = null)
where T : IComparable, IConvertible, IEquatable<T> => await QueryAsync<T>(sql, values);
/// <summary>
@@ -169,7 +169,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Колонка данных или null</returns>
public IEnumerable<T> GetCol<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T> =>
public IEnumerable<T> GetCol<T> (string sql, object? values = null) where T : IComparable, IConvertible, IEquatable<T> =>
GetColAsync<T>(sql, values).GetAwaiter().GetResult();
/// <summary>
@@ -179,7 +179,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Поле или null</returns>
public async Task<T?> GetVarAsync<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T>
public async Task<T?> GetVarAsync<T> (string sql, object? values = null) where T : IComparable, IConvertible, IEquatable<T>
{
// Подключаемся к БД
await using MySqlConnection connection = new(ConnectionString);
@@ -198,7 +198,7 @@ public class MySqlEngine: IDbEngine
/// <param name="sql">SQL-запрос</param>
/// <param name="values">Данные запроса</param>
/// <returns>Поле или null</returns>
public T? GetVar<T> (string sql, object values) where T : IComparable, IConvertible, IEquatable<T> =>
public T? GetVar<T> (string sql, object? values = null) where T : IComparable, IConvertible, IEquatable<T> =>
GetVarAsync<T>(sql, values).GetAwaiter().GetResult();
#endregion
@@ -363,7 +363,7 @@ public class MySqlEngine: IDbEngine
/// <param name="tableName">Имя таблицы</param>
/// <param name="whereConditionColumn">Условие поиска строки. ВНИМАНИЕ! Должно быть одним из указанных свойств типа класса data</param>
/// <returns>Результат выполнения</returns>
public bool DeleteRow<T>(T data, string tableName, string whereConditionColumn) where T : class =>
public bool DeleteRow<T> (T data, string tableName, string whereConditionColumn) where T : class =>
DeleteRowAsync(data, tableName, whereConditionColumn).GetAwaiter().GetResult();
#endregion
}