none
COMO PASSA PARAMETROS DE " CLASSE CONEXAO " PARA O BOTAO DE UM FORM ??? RRS feed

  • Pergunta

  • Bom dia, estou querendo abrir conexao com o banco de dados e inserir dados clicando no botao de um form, o codigo e este:



    Classe TESTE:



    Public Class classe_teste

        Public Nome As String
        Public Endereco As String


        Public Sub New(ByVal Nome As String, ByVal Endereco As String)

            Me.Nome = Nome
            Me.Endereco = Endereco

        End Sub

    End Class





    ---------------------------------------------------------------



    CLASSE CONEXAO;



    Public Class teste

        Public Sub Button1_Click()
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)





        End Sub



    ---------------------------------------------------------------



    BOTAO DE FORMULARIO



    Public Class teste

        Public Sub Button1_Click()
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)





        End Sub



    -------------------------------------



    EIS A QUESTAO: A INTERACAO ENTRE O BOTAO FORMULARIO E AS CLASSES FUNCIONAM NO TESTE QUE EU FIZ CHAMANDO UMA CAIXA DE MENSAGEM , POREM EU CRIEI A CLASSE CONEXAO E NAO SEI COMO FAÇO PARA PASSAR OS PARAMETROS DESTA CLASSE , PARA NA HORA DO USUARIO CLICAR NO BOTAO GRAVAR AS INFORMACOES DO FORMULARIO , ESTAS SEREM GRAVADAS NO BANCO DE DADOS ????









    OBRIGADO




    quarta-feira, 27 de junho de 2012 15:13

Todas as Respostas

  • Bom dia, estou querendo abrir conexao com o banco de dados e inserir dados clicando no botao de um form, o codigo e este:



    Classe TESTE:



    Public Class classe_teste

        Public Nome As String
        Public Endereco As String


        Public Sub New(ByVal Nome As String, ByVal Endereco As String)

            Me.Nome = Nome
            Me.Endereco = Endereco

        End Sub

    End Class





    ---------------------------------------------------------------



    CLASSE CONEXAO;



    Public Class teste

        Public Sub Button1_Click()
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)





        End Sub



    ---------------------------------------------------------------



    BOTAO DE FORMULARIO



    Public Class teste

        Public Sub Button1_Click()
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)





        End Sub



    -------------------------------------



    EIS A QUESTAO: A INTERACAO ENTRE O BOTAO FORMULARIO E AS CLASSES FUNCIONAM NO TESTE QUE EU FIZ CHAMANDO UMA CAIXA DE MENSAGEM , POREM EU CRIEI A CLASSE CONEXAO E NAO SEI COMO FAÇO PARA PASSAR OS PARAMETROS DESTA CLASSE , PARA NA HORA DO USUARIO CLICAR NO BOTAO GRAVAR AS INFORMACOES DO FORMULARIO , ESTAS SEREM GRAVADAS NO BANCO DE DADOS ????









    OBRIGADO




    • Mesclado Heloisa Pires segunda-feira, 2 de julho de 2012 13:32 igual
    quarta-feira, 27 de junho de 2012 15:12
  • Olá Mr. Carlox,

    O código necessário para salvar registros na base de dados é este aqui:

        Private Sub btnSalvar_Click(sender As Object, e As EventArgs) Handles btnSalvar.Click
    
            Dim conn = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=msdnForum;Data Source=.\sqlexpress;")
            Dim command = conn.CreateCommand()
    
            command.CommandText = "INSERT INTO TabelaTeste (Nome) VALUES ('" + Me.txtNome.Text + "')"
            command.CommandType = CommandType.Text
    
            conn.Open()
    
            command.ExecuteNonQuery()
    
            conn.Close()
            conn.Dispose()
    
    
        End Sub

    Lembrando que:

    - Este exemplo irá variar com relação ao nome e estrutura de sua tabela

    - A string utilizada para fazer a conexão com o seu banco de dados também ira variar

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    quarta-feira, 27 de junho de 2012 16:20
    Moderador
  • Obrigado fernando mas eu ja tenho a classe conexao criada em uma classe, teria como chamar tudo isso no botao  do meu form????
    quarta-feira, 27 de junho de 2012 17:26
  • Olá Mr. Carlox,

    Tem como sim. Pelo o que vi no seu código vc já esta fazendo isso.

    Veja:

    Dim classe As classe_teste
    classe = New classe_teste(txtNome.Text, txtEndereco.Text)
    
    Dim classe2 As classe_conectar
    classe2 = New classe_conectar()
    classe2.funcao_conectar(classe)
     

    Pelo o que reparei vc já esta instanciando a sua classe e invocando seus métodos.

    O click do seu botão esta funcionando? Foi registrado algum evento para ele?

    Pelo o que reparei no seu código a assinatura do evento click do seu botão é apenas "Button1_Click()", no caso vc teria de ter uma assinatura seguindo o mesmo padrão da minha: "Private Sub btnSalvar_Click(sender As Object, e As EventArgs) Handles btnSalvar.Click". Vc chegou a arrastar o botão para o formulário e dar um duplo clique sobre o mesmo para gerar o evento de click do botão?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    quarta-feira, 27 de junho de 2012 17:34
    Moderador
  • Exato fernando, porem o resultado do click apenas imprimi na tela as informacoes que eu preencho nos campos do formulario em vez disso eu quero inserir esses dados no banco de dados, eu nao sei se eu utilizar " DELEGATE" pode me ajudar.....
    • Editado MisterCarlox quarta-feira, 27 de junho de 2012 18:25
    quarta-feira, 27 de junho de 2012 18:19
  • Olá Mr. Carlox,

    Se observar o código que postou até agora, não esta aparente o modo como esta conectando no banco de dados.

    Então, ao afirmar que os dados estão sendo impressos na tela fica difícil dar um aval sobre isso, pois não sei qual código esta sendo executado na classe "classe_conectar".

    Poste o código dessa classe que irei avaliar o que esta sendo feito e então poderemos inserir os dados na base de dados ;)

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    quarta-feira, 27 de junho de 2012 18:25
    Moderador
  • Olá Mr. Carlox,

    Se observar o código que postou até agora, não esta aparente o modo como esta conectando no banco de dados.

    Então, ao afirmar que os dados estão sendo impressos na tela fica difícil dar um aval sobre isso, pois não sei qual código esta sendo executado na classe "classe_conectar".

    Poste o código dessa classe que irei avaliar o que esta sendo feito e então poderemos inserir os dados na base de dados ;)

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    Bom, eu criei 2 classes e 1 formulario: (classe teste) , (classe conectar ) e form teste:

    classe teste e a classe com os meus atributos:

    Classe TESTE:



    Public Class classe_teste

        Public Nome As String
        Public Endereco As String


        Public Sub New(ByVal Nome As String, ByVal Endereco As String)

            Me.Nome = Nome
            Me.Endereco = Endereco

        End Sub

    End Class


    -------------------------------------------

    Classe Conectar

    Public Class classe_conectar
        Dim cnn As New OleDbConnection
        Dim cmd As New OleDbCommand
        Dim strConexao As String
        Dim icont As Integer


        ' Public Delegate Sub testando(ByVal MENSAGEM As String)




        Public Sub funcao_conectar(ByVal cadastro As classe_teste)




            Try
                cnn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\carlox\Meus documentos\Visual Studio 2008\Projects\aplicacao_radio\aplicacao_radio\cadastro.mdb;")
                cnn.Open()


           strConexao = "insert into cadastro values (" & _ txtNome.Text & ", "& _txtEndereco.Text &")"



                cmd = New OleDbCommand(strConexao, cnn)
                icont = cmd.ExecuteNonQuery
                MessageBox.Show(icont)



            Catch ex As Exception
                MessageBox.Show("info inserida")

                cnn.Close()
            End Try




            ' MessageBox.Show(cadastro.Nome & vbCrLf & cadastro.Endereco)




        End Sub

    --------------------------------------------------------------

    FORMULARIO TESTE NO BOTAO SALVAR O CODIGO E ESTE

    Public Class teste

        Public Sub Button1_Click()
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)

    end class

    -----------------------------------------------------------------------

    O que eu quero fazer:

    Eu quero chamar a minha classe conectar no meu botao do formulario teste , eu preferi criar uma classe separada e nao  fazer tudo dentro do botao, porem eu nao sei como fazer chamar essa classe no botao 

    quarta-feira, 27 de junho de 2012 18:41
  • Mr. Carlox,

    Vc diz o seguinte: "Eu quero chamar a minha classe conectar no meu botao do formulario teste , eu preferi criar uma classe separada e nao fazer tudo dentro do botao, porem eu nao sei como fazer chamar essa classe no botao."

    Quando vc clica no botão nada acontece? Seu código não é executado?

    O que vc precisa fazer é modificar a assinatura do seu método Click do botão para o seguinte:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)
    end class

    A assinatura "Public Sub Button1_Click()" não associa o botão ao evento de Click.

    Para criar o evento de click basta vc utilizar o mesmo padrão de assinatura que indiquei acima, ou clicar duas vezes no botão quando vc estiver editando o formulário.

    Segundo ponto, observei seu código e vi um erro no código da sua classe "classe_conectar", este erro esta na linha onde vc criar o comando SQL, na verdade o código seria:

    strConexao = "insert into cadastro values ('" & cadastro.Nome & "', '"& cadastro.Endereco &"')"

    []s!

    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    • Sugerido como Resposta rs.developer segunda-feira, 9 de julho de 2012 00:32
    quarta-feira, 27 de junho de 2012 18:53
    Moderador
  • Eu iriei fazer isso que voce me falou agora, vou testar........
    quarta-feira, 27 de junho de 2012 18:55
  • Mr. Carlox,

    Vc diz o seguinte: "Eu quero chamar a minha classe conectar no meu botao do formulario teste , eu preferi criar uma classe separada e nao fazer tudo dentro do botao, porem eu nao sei como fazer chamar essa classe no botao."

    Quando vc clica no botão nada acontece? Seu código não é executado?

    O que vc precisa fazer é modificar a assinatura do seu método Click do botão para o seguinte:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim classe As classe_teste
            classe = New classe_teste(txtNome.Text, txtEndereco.Text)
            Dim classe2 As classe_conectar
            classe2 = New classe_conectar()
            classe2.funcao_conectar(classe)
    end class

    A assinatura "Public Sub Button1_Click()" não associa o botão ao evento de Click.

    Para criar o evento de click basta vc utilizar o mesmo padrão de assinatura que indiquei acima, ou clicar duas vezes no botão quando vc estiver editando o formulário.

    Segundo ponto, observei seu código e vi um erro no código da sua classe "classe_conectar", este erro esta na linha onde vc criar o comando SQL, na verdade o código seria:

    strConexao = "insert into cadastro values ('" & cadastro.Nome & "', '"& cadastro.Endereco &"')"

    []s!

    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    BOM FIZ O QUE VOCE FALOU , DEBUGUEI SEM ERROS AGORA POREM, OS DADOS SEGUEM NAO INSERINDO NO BANCO ??.......
    quarta-feira, 27 de junho de 2012 19:48
  • Mr. Carlox,

    Qua a estrutura da sua tabela "cadastro"?

    Vc tem apenas estes campos la?

    Tem algum outro campo obrigatório?

    Mude o final do seu bloco try...catch para:

    Catch ex As Exception
     MessageBox.Show(ex.Message)
    Finally 
     cnn.Close()     
    End Try 

    Agora o click do botão esta funcionando, correto?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    quarta-feira, 27 de junho de 2012 19:56
    Moderador
  • Eu vou ter que sair agora, mais tarde de noite eu posto ....abras!!
    quarta-feira, 27 de junho de 2012 20:09
  • Mr. Carlox,

    Alguma evolução nessa thread?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    segunda-feira, 2 de julho de 2012 13:45
    Moderador