Jump to content

Archived

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

sublyer

Classe de conexão

Recommended Posts

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

 

 

Olá Jader,

 

Agora funcionou, porem tive que alterar uns parametros na instrução que foi disponibilizada acima, ou seja, o parametro estava fechando a conexao antes do tempo, entao tive que remove-la. VocÊ sabe qual a razão?

 

Antes: dataReader = Me.command.ExecuteReader(Commandbehavior.CloseConnection)

Depois: dataReader = Me.command.ExecuteReader()

 

Bem, desde ja obrigado pela ajuda, e desculpe minha ignorancia nas perguntas, ok?

Abraços e tudo de bom!

Share this post


Link to post
Share on other sites

Olá,

 

Então, esse parâmetro é utilizado quando nós queremos que a conexão seja fechada após a execução do DataReader.Close();

 

Fico feliz de saber que está funcionando a classe e fique a vontade para perguntar.

 

Atenciosamente

Share this post


Link to post
Share on other sites

Jáder,

 

Show de bola esssa classe!

Estou migrande do ASP clássico para .NET e estava com dúvidas quanto a orientação a objetos, namespaces e classes.

 

Esse seu código clareou as idéias do uso prático!

 

Não tinha como deixar de me manifestar, obrigado e parabéns!

 

Obs.: Tive o mesmo problema que o 'sworlls' na linha "dataReader = Me.command.ExecuteReader(Commandbehavior.CloseConnection)", a solução foi tirar o Commandbehavior.CloseConnection, assim "dataReader = Me.command.ExecuteReader()", (como ele fez).

 

Se alguém tiver dúvida em como usar a classe, segue abaixo dois códigos de aplicação bem fáceis de entender, principalmente pra quem está iniciando (como eu):

 

Arquivo .aspx

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="testeClasseBD.aspx.vb" Inherits="Test.testeClasseBD" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    
    </div>
    </form>
</body>
</html>

Arquivo .vb

Partial Public Class testeClasseBD
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim conexao As Conexao = New Conexao

        conexao.abre()
        conexao.executeQuery("Call SP;") 'Query que chama uma Stodered procedure do MySQL'
        Dim resultado As DataTable = conexao.getResult()

        GridView1.DataSource = resultado
        GridView1.DataBind()

        conexao.fecha()
    End Sub

End Class

Abraços,

 

Michael C.

Share this post


Link to post
Share on other sites

Olá Michael, fico feliz por saber que a classe está sendo bem aceita.

 

Fique a vontade para perguntar, caso tenha alguma dúvida ok.

 

Um grande abraço.

Share this post


Link to post
Share on other sites

Rafael, sua connection string está fora do arquivo de configuração da aplicação (app.config ou web.config)?

 

Atenciosamente

Share this post


Link to post
Share on other sites

Pessoal, sou totalmente novo no VB.net e estou bem perdido, mas está classe me abriu os olhos para alguma coisa.... Mas fiquei com uma dúvida.

 

Como carregar um valor de um campo numa variavel?

 

dbconexao.OpenBD()

dbconexao.ExecutaQuery("SELECT UserUsuario FROM TbSegUsuario")

 

Dim resultado As DataTable = dbconexao.getResult()

 

usuario = resultado.Rows(0).ToString (está linha está correta??)

MsgBox(usuario)

dbconexao.CloseBD()

 

Obrigado,

 

Alessandro Luchesi

Share this post


Link to post
Share on other sites

Bom Dia

 

Pessoal, gostei muito dessa classe que foi exposta é e realmente ela pode servir dentro de um framework. Contendo classes como essas paras os diversos bancos e melhor ainda se implementadas com o padrao abstract factory ><.

 

Mas estou aqui para saber como eu poderia implementar nessa classe um metodo para executar uma stored procedure?

Sendo que ja cogitei em passar no parametro do metodo o nome da procedure, mas como eu faria para passar os parametros da procedure no metodo. Pensando que ele deve atender a N problemas.

 

Exemplo:

 

SqlServer.executarprocedure(<nome da procedure>, <parametro?>){ << na hora de passa os parametros em empaquei? =/

....

Implementação

.....

}

Share this post


Link to post
Share on other sites

Olá Tiago, tudo bem?

 

Em relação a execução de stored procedures, a dificuldade fica em como tratar os parâmetros, pois em um banco de dados Oracle você usa Varchar2 e no SqlServer Varchar.

 

Mas acredito que se você conseguir adicionar os parâmetros no Command em execução ele irá executar normalmente (lembrando que o tipo de comando não será ComandText e sim Stored Procedure).

 

Atenciosamente

Share this post


Link to post
Share on other sites

Galera ja pensaram em utilizar ao invés de uma connection string "chumbada", utilizar algum XML com a Connection String criptografada ? Fica muito mais seguro.

 

A idéia seria colocar a connection string dentro do XML criptografada, e o método de conexão descriptografa esta connection strign de acordo com uma chave passada como parâmetro.

 

<?xml version="1.0" standalone="yes"?>
<Conexao xmlns="http://XPTO/Data.xsd">

  <Configuracao>
    <Criptografia Chave="PassW0rD" />
  </Configuracao>


  <SQLServer ConnectionName="BANCO1"
           ConnectionString="07855568852224545878700555588...." />

Em ConnectionString a criptografica geraria N números para a direita depois dos 3 pontinhos.

Share this post


Link to post
Share on other sites

Olá gandarez,

 

A solução é bem bacana, porém podemos usar isso diretamente nos arquivos de configuração da aplicação (web.config ou app.config) e se for necessário criptografar o login e senha de acesso ao banco sem problemas.

 

 

Att

Share this post


Link to post
Share on other sites

Exatamente Sub, criptografia na Connection String é extremamente recomendado para uma aplicação.

Vou ver se crio algum exemplo em casa e posto aqui depois.

Share this post


Link to post
Share on other sites

Jóia, aguardamos seu post.

 

Grande abraço.

Share this post


Link to post
Share on other sites

Olá gandarez, ficou bacana esta implementação, parabéns..

 

 

Vlwww

Share this post


Link to post
Share on other sites

×

Important Information

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