TigerEmu/Storage/DatabaseConnection.cs

38 lines
994 B
C#
Raw Normal View History

2023-09-23 11:11:07 +00:00
using MySqlConnector;
namespace Tiger.Storage;
public class DatabaseConnection : IAsyncDisposable
{
private readonly MySqlConnection _connection;
private readonly MySqlCommand _command;
public DatabaseConnection(MySqlConnection connection)
{
_connection = connection;
_command = connection.CreateCommand();
}
public async Task<MySqlDataReader> GetResultSet(string query, params (string, object)[] mysqlParams)
{
await _connection.OpenAsync();
_command.CommandText = query;
foreach (var mysqlParam in mysqlParams)
{
_command.Parameters.AddWithValue(mysqlParam.Item1, mysqlParam.Item2);
}
var reader = await _command.ExecuteReaderAsync();
_command.Parameters.Clear();
return reader;
}
public async ValueTask DisposeAsync()
{
await _connection.DisposeAsync();
await _command.DisposeAsync();
GC.SuppressFinalize(this);
}
}