Jump to content

Archived

This topic is now archived and is closed to further replies.

sublyer

Classe de conexão

Recommended Posts

Falae galera beleza? bom fiz uma classe de conexão com o sql server que achei interessante compartilhar com a galera.

Espero receber algumas melhorias nesta classe e também espero que possa ajudar vocês no desenvolvimento.

 

Flwww

Grande abraço a todos.

 

VB.NET

 

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.DataTable


Public Class Conexao

Private connectionString As String

Private connection As SqlConnection

Private command As SqlCommand

Public Sub open()

Me.connectionString = "ADICIONE AQUI SUA CONNECTION STRING"
Me.connection = New SqlConnection(Me.connectionString)

Me.connection.Open()

End Sub

Public Sub executeQuery(ByVal query As String)

Me.command = New SqlCommand()
Me.command.Connection = Me.connection
Me.command.CommandText = query
Me.command.CommandType = CommandType.Text

Me.command.ExecuteNonQuery()

End Sub

Public Function getResult() As System.Data.DataTable

Dim dataTable As DataTable
Dim dataReader As SqlDataReader


dataTable = New DataTable()
dataReader = Me.command.ExecuteReader(CommandBehavior.CloseConnection)

dataTable.Load(dataReader, LoadOption.OverwriteChanges)
dataReader.Close()
dataReader.Dispose()

Return (dataTable)

End Function

Public Sub close()

If ((Me.connection Is Nothing) = False) Then


If (Me.connection.State = ConnectionState.Open) Then

Me.connection.Close()

End If

End If

End Sub

End Class

C#

using System;
using System.Data;
using System.Data.SqlClient;

namespace br.conexao
{
public class Conexao
{
private String connectionString;

private SqlConnection connection;

private SqlCommand command;

public void open()
{
this.connectionString = "ADICIONE AQUI SUA CONNECTION STRING";
this.connection = new SqlConnection(this.connectionString);

this.connection.Open();
}

public void executeQuery(String query)
{
this.command = new SqlCommand();
this.command.Connection = this.connection;
this.command.CommandText = query;
this.command.CommandType = CommandType.Text;

this.command.ExecuteNonQuery();
}

public System.Data.DataTable getResult()
{
DataTable dataTable;
SqlDataReader dataReader; 

dataTable = new DataTable();
dataReader =this.command.ExecuteReader(CommandBehavior.CloseConnection);

dataTable.Load(dataReader, LoadOption.OverwriteChanges);
dataReader.Close();
dataReader.Dispose();

return (dataTable);
}

public void close()
{
if (this.connection.Equals(null) == false)
{
if (this.connection.State == ConnectionState.Open)
{
this.connection.Close();
}
}
}
}
}

Share this post


Link to post
Share on other sites

Olá Rômulo, então a idéia do framework ja está sendo trabalhada....só preciso de um pouco mais de tempo para escrever o manual do framework.

 

Acredito que em breve, possa disponibilizar o projeto o source forge para que possamos trabalhar em equipe, para melhor o framework.

 

Obrigado pelo seu comentário.

Share this post


Link to post
Share on other sites

Olá Daniel, bom tenho sim a implementação desta classe em C#, faz parte do framework que estou desenvolvendo, mas estou um tanto sem tempo para disponibilizar.

 

Flwww, grande abraço....

Share this post


Link to post
Share on other sites

Olá Daniel, bom tenho sim a implementação desta classe em C#, faz parte do framework que estou desenvolvendo, mas estou um tanto sem tempo para disponibilizar.

 

Flwww, grande abraço....

Acho até legal para fins de estudos, mas tente nao inventar a roda novamente, já existe milhoes de frameworks de persistencia de dados...! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Share this post


Link to post
Share on other sites

Olá leandro, a questão do framework não é atender executar querys diretamente no meio do código e sim dividir o software em camadas, possibilitando o reuso do mesmo software (sem a necessidade de recompilaçao) para N banco de dados existentes.

 

Em minha sincera opinião, respeito muito os frameworks de persistência hoje desenvolvidos e lhe posso te dizer que meu framework não vem pra fazer a mesma coisa, pois tentamos possibilitar a facilidade de utilizar stored procedures.

 

Um grande abraço.

Share this post


Link to post
Share on other sites

Olá leandro, a questão do framework não é atender executar querys diretamente no meio do código e sim dividir o software em camadas, possibilitando o reuso do mesmo software (sem a necessidade de recompilaçao) para N banco de dados existentes.

 

Em minha sincera opinião, respeito muito os frameworks de persistência hoje desenvolvidos e lhe posso te dizer que meu framework não vem pra fazer a mesma coisa, pois tentamos possibilitar a facilidade de utilizar stored procedures.

 

Um grande abraço.

Sublyer,

O processo esta bacana, mas se vale de opinião, você poderia implementar uns tratamentos de erros nele.

abraços

Share this post


Link to post
Share on other sites

Olá Marcio Souza, é de grande ajuda sua contribuição em opinião, no framework existe o tratamento de erros, mas infelizmente ainda estou sem tempo para disponibilizar, estamos em fase testes com o framework em nossas aplicações.

 

Em breve nós da Cogitto estaremos contribuindo com o pessoal do fórum.

 

Um grande abraço.

Share this post


Link to post
Share on other sites

Gostei do exemplo do c#,

não tenho muito conhecimento, mas pelo comenntários que vi, está bem feita, vi algumas classes de conexões mas

não curti muito, algumas não entendi.

 

Vou estudar essa sua classe Sublyer, para aumentar os conhecimentos...

atualmente quais foram as mudanças que você você fez na classe ?

 

Parabéns, bom trabalho.

 

t+

Share this post


Link to post
Share on other sites

Olá David Ramires, muito obrigado pelo elogio ao trabalho realizado.

 

Bom as modificações foram para criar um framework de desenvolvimento que realiza a padronização de acesso a banco de dados para o trabalho com stored procedures.

 

Resumindo um bocado, este framework tem como principal objetivo padronizar o acesso a dados para diversos bancos de dados para o trabalho com stored procedures. Neste framework hoje temos várias implementações de banco de dados (Oracle, Sql Server e MySQL), mas estamos em faze de testes e acredito que em breve poderemos estar disponibilizando um material para poder ser utilizado e também o link para download da dll no site da Cogitto (www.cogitto.com.br).

 

Um grande abraço.

Share this post


Link to post
Share on other sites

Legal a idéia, quando estiver com o site no ar me envia uma mp por favor!

ah estou com um projeto em c# para fazer mas não tenho tantos conhecimentos, conhece algum site/tutorial/link para me enviar, vou usar o VS 2008.

 

Obrigado.

 

Abraço.

Share this post


Link to post
Share on other sites

Olá David Ramires, assim que estiver no site estarei publicando aqui no fórum.

Em relação a material de estudo existem inúmeras fontes, mas o mais bacana é o MSDN Brasil.

 

Um grande abraço.

Share this post


Link to post
Share on other sites

Olá David Ramires, assim que estiver no site estarei publicando aqui no fórum.

Em relação a material de estudo existem inúmeras fontes, mas o mais bacana é o MSDN Brasil.

 

Um grande abraço.

 

Olá Amigos,

 

Por favor, me perdoem a ignorância, mas não estou sabendo chamar a função GetResult(), como faço para pegar os dados dela? alguem pode me dar uma luz?

Desculpem mais uma vez a pergunta idiota, mas sou noob nisso ainda...

Obrigado pessoal!

Share this post


Link to post
Share on other sites

Olá sworlls, como você está chamando o método?

 

Atenciosamente

Share this post


Link to post
Share on other sites

Olá Jader,

 

Eu estou apenas chamando a classe e a função getresult(), sendo:

 

STRconexao.getResult() 'Eu não deveria passar algum valor para o getresult, para que ele traga um resultado e preencha a datatable?

Não estou sabendo chamar essa classe....mó lastima!Noob e fogo! risos...

Me perdoe se não for essa a informação que você esteja perguntando, mas foi assim que entendi.

Share this post


Link to post
Share on other sites

Olá, você deverá passar uma query para o método executeQuery para depois poder recuperar o DataTable.

 

Exemplo de utilização da classe:

 

C#


Conexao conexao = new Conexao();

conexao.open();

conexao.executeQuery("select * from tabela");

DataTable resultado = conexao.getResult();

conexao.close();

Grande abraço.

Share this post


Link to post
Share on other sites

Olá, você deverá passar uma query para o método executeQuery para depois poder recuperar o DataTable.

 

Exemplo de utilização da classe:

 

C#


Conexao conexao = new Conexao();

conexao.open();

conexao.executeQuery("select * from tabela");

DataTable resultado = conexao.getResult();

conexao.close();

Grande abraço.

 

 

Jader,

 

Eu ja passei a query, ja abri a conexao, so nao consigo ler os fields coletados pelo getresult(), pois nao sei como chamar essa função de dentro de uma pagina, ex: default.aspx.

Todas as funções chamei separadamente como nas linhas abaixo:

 

STRconexao.open("SQL connection string") - Abriu a conexao normalmente

STRconexao.executeQuery("SQL Query string") - Abriu o banco tambem normalmente

STRVar= STRconexao.getResult.Rows(1)(1).ToString() --'Essa é a parte que não sei como instanciar, por isso nao retornou as fields para que eu podesse capturar os resultados.

 

Se poderem me ajudar em como instanciar essa terceira linha corretamente para rodar a função GETresult(), ficarei muito agradecido.

Abraços amigos

Share this post


Link to post
Share on other sites

Olá, tente da seguinte forma:

 

 

Dim dataTable as System.Data.DataTable

 

STRconexao.open("SQL connection string") - Abriu a conexao normalmente

STRconexao.executeQuery("SQL Query string") - Abriu o banco tambem normalmente

dataTable = STRconexao.getResult()

STRVar= dataTable.Rows(1)(1).ToString()

 

Atenciosmente

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.