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é++

Um comentário:
Brito, o blog está muito bom, só precisa colocar mais conteúdo e o AdSense para que você começe a ganhar dinheiro.
Mais informações
cleiton-nascimento@blogspot.com
Postar um comentário