7 de novembro de 2008

Classe genérica para DataAccess em C#

Frequentemente temos que montar um projeto em .NET com acesso a dados (quase sempre hehe). Para isto, sempre utilizamos de operações básicas de transact SQL, seleção de dados do BD, contadores de resultados de querys, ou até mesmo passamos parâmetros para execução de procedures no SQL. Todas estas atividade são comuns em aplicações de acesso a dados. Para facilitar a codificação e aproveitando a arquitetura de desenvolvimento em N camadas, criei uma classe genérica de acesso a dados, que contempla todas as operações necessárias para se trabalhar com dados em qualquer aplicação .NET. Basta somente enviar a string de conexão ao instanciar a classe e depois enviar a query para o método desejado.

A versão mais atualizada até hoje é a que utilizei no sistema de simulados, disponivel abaixo:

public class DacSimulados
{

public string status = "";
private string conStr = "";

public DacSimulados(string conStr_)
{
conStr = conStr_;
}

public void transactBD(string query)
{
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = (query);
try
{
conn.Open();
cmd.ExecuteNonQuery();
status = ("OK");
}
catch (Exception ex)
{
status = (ex.Message);
}
finally
{
conn.Close();
}
}

public DataTable select(string query_)
{
DataTable _tbl = new DataTable();
SqlConnection cn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand(query_, cn);
try
{
cn.Open();
_tbl.Load(cmd.ExecuteReader());
}
catch (Exception ex)
{
status = ex.Message;
}
finally
{
cn.Close();
}
return _tbl;
}

public int count(string query_)
{
int count = 0;
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = (query_);
try
{
conn.Open();
count = Convert.ToInt16(cmd.ExecuteScalar());
status = ("OK");
}
catch (Exception ex)
{
status = ("Falha ao realizar o COUNT. A mensagem retornada foi: " + ex.Message);
}
finally
{
conn.Close();
}
return count;
}

public void executeProcedure(string procedure_, object atividade_)
{
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = (procedure_);
//cmd.Parameters.AddWithValue("@idAtividade", atividade_.idAtividade);
//cmd.Parameters.AddWithValue("@data", atividade_.data);
//cmd.Parameters.AddWithValue("@descricao", atividade_.descricao);
//cmd.Parameters.AddWithValue("@sistema", atividade_.sistema);
//cmd.Parameters.AddWithValue("@hrInicial", atividade_.hrInicial);
//cmd.Parameters.AddWithValue("@hrFinal", atividade_.hrFinal);
//cmd.Parameters.AddWithValue("@razao", atividade_.razao);
//cmd.Parameters.AddWithValue("@solicitante", atividade_.solicitante);
//cmd.Parameters.AddWithValue("@analista", atividade_.analista);
//cmd.Parameters.AddWithValue("@projeto", atividade_.projeto);
try
{
conn.Open();
cmd.ExecuteNonQuery();
status = "OK";
}
catch (Exception ex)
{
status = ex.Message;
}
finally
{
conn.Close();
}
}
}

Espero ter ajudado!

Até++

6 de novembro de 2008

Lightbox Vs FancyZoom

Para quem já curte os efeitos e versões do lightbox, agora também pode curtir um outro estilo de ferramenta web interativa. O FancyZoom é uma opção ao nível do lightbox com um efeito muito legal e um conceito diferente. Vale a pena conferir.

Dê uma olhada em:

http://www.cabel.name/2008/02/fancyzoom-10.html


[]s

Inauguração do Blog


Vamos ver o que for interessante, dentro da área de tecnologia web e desenvolvimento, estará aki...

[]s