LevelOS-Core/DAL/DALLconexao.cs

75 lines
1.8 KiB
C#

using System;
using Microsoft.Data.SqlClient;
namespace DAL
{
public class DALLconexao : IDisposable
{
private string _stringConexao;
private SqlConnection _conexao;
private SqlTransaction? _transaction;
public void Dispose()
{
_transaction?.Dispose();
_conexao?.Dispose();
}
public DALLconexao(string dadosConexao)
{
_stringConexao = dadosConexao;
_conexao = new SqlConnection(_stringConexao);
}
public string StringConexao
{
get { return _stringConexao; }
set { _stringConexao = value; }
}
public SqlConnection ObjetoConexao
{
get { return _conexao; }
set { _conexao = value; }
}
public SqlTransaction? ObjetoTransaction
{
get { return _transaction; }
set { _transaction = value; }
}
public void Conectar()
{
if (_conexao.State != System.Data.ConnectionState.Open)
_conexao.Open();
}
public void Desconectar()
{
if (_conexao.State != System.Data.ConnectionState.Closed)
_conexao.Close();
}
public void IniciarTransacao()
{
if (_conexao.State != System.Data.ConnectionState.Open)
_conexao.Open();
_transaction = _conexao.BeginTransaction();
}
public void TerminarTransacao()
{
_transaction?.Commit();
_transaction = null;
}
public void CancelarTransacao()
{
try { _transaction?.Rollback(); }
catch { /* log aqui futuramente */ }
finally { _transaction = null; }
}
}
}