Olá,
Tenho a seguinte dúvida:
Estou desenvolvendo uma applicação em C# (WindowsForms), tenho uma camada DAL na ClassLibrary utilizada pelo sistema. A dúvida é a seguinte minha classe Conexao está com todos os metodos estáticos lá possuo métodos tipo:
// ------------------------------------------------------------------------
public static IDbConnection CreateConnection()
{
switch (DataBaseType)
{
case "SQLSERVER":
conn = new SqlConnection(ConnectionString);
break;
case "ORACLE":
conn = new OracleConnection(ConnectionString);
break;
case "ACCESS":
conn = new OleDbConnection(ConnectionString);
break;
}
return conn;
}
public static void Conecta()
{
try
{
if (conn.State == 0)
{
conn.Open();
}
}
catch (Exception ex)
{
Dot3.Message.ShowErro("Erro ao Conectar: " + ex.Message.ToString());
Dot3.Logs.Log.GravaLog("class Conexao - Conecta()" + ex.Message.ToString());
return;
}
}
// ----------------------------------------------------------------------------------------------------------------------------
Na minha classe Persistencia possuo métodos do tipo:
public void ExecuteNonQuery(StringBuilder sql)
{
IDbCommand cmd = Conexoes.CreateCommand(sql.ToString());
try
{
Conexoes.Conecta();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
if(Config.LOG_ATIVO)
Dot3.Logs.Log.GravaLog(Classe,Metodo,ex.Message.ToString(),ex.StackTrace.ToString());
Dot3.Message.ShowErro("Erro: " + ex.Message.ToString());
}
finally
{
Conexoes.Desconecta();
}
}
// ------------------------------------------------------------------------------
Na camada BLL eu acesso a Persistencia assim:
public void Update()
{
StringBuilder strSQL = new StringBuilder();
strSQL.Append("UPDATE tblAnticorpos SET ");
strSQL.Append("Descricao='" + descricao + "', ");
strSQL.Append("AtivoAnticorpos='" + Dot3.Funcoes.BoolToString(ativa) + "' ");
strSQL.Append("WHERE CodAnticorpos=" + codigo + "");
p = new Persistencia();
p.ExecuteNonQuery(strSQL);
}
// ----------------------------------------------------------------------------------------------------------------------------------
Seria correto eu transformar o método ExecuteNonQuery da Classe Persistencia em um método estático,
e assim eu chamaria da camda BLL assim ????
public void Update()
{
StringBuilder strSQL = new StringBuilder();
strSQL.Append("UPDATE tblAnticorpos SET ");
strSQL.Append("Descricao='" + descricao + "', ");
strSQL.Append("AtivoAnticorpos='" + Dot3.Funcoes.BoolToString(ativa) + "' ");
strSQL.Append("WHERE CodAnticorpos=" + codigo + "");
Persistencia.ExecuteNonQuery(strSQL);
}
Se alguém puder me dar uma ajuda ficarei muito grato.
Abraço a todos!