none
Recebendo Valores de uma Classe (!) RRS feed

  • Pergunta

  • Boa noite,

    Como faço para receber os valores de uma classe através de dois 'TextBox' ?

    Estou criando um sistema de cadastro de usuário através do Access (OleDb).

    Quero colocar a função "CadFuncionario()" dentro de uma classe, e chamar no formulário por motivos de organização.

    Tentei de algumas maneiras, porém quando eu chamo as variáveis da classe, me diz que não possui valores.

    tentei das seguintes formas;

    public string txtUsuario { get; set; }
    public string txtSenha { get; set; }
    
    public void CadFuncionario()
    {
       // Variável de Conexão
                string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                + Application.StartupPath + @"\Data\banco.mdb";
    
                // Variáveis de Conexão
                txtUsuario = ""; // NÃO SEI QUAL VALOR ATRIBUIR ÀS VARIÁVEIS. 
                txtSenha = ""; // NÃO SEI QUAL VALOR ATRIBUIR ÀS VARIÁVEIS.
    
                // Criar Conexão com o Banco de Dados
                OleDbConnection dbConnection = new OleDbConnection(strConnection);
    
                // Criar um Comando
                OleDbCommand cmdQry = dbConnection.CreateCommand();
    
                // Define a instrução SQL com parâmetros
                cmdQry.CommandText = "INSERT INTO tabelaBanco (Exemplo,Exemplo2)"
                + " VALUES (@Exemplo, @Exemplo2)";
    
                // Definindo os parâmetros: (Nome / Tipo / Tamanho)
                cmdQry.Parameters.Add("@Exemplo",OleDbType.VarChar, 10);
                cmdQry.Parameters.Add("@Exemplo2", OleDbType.VarChar, 20);            
    
                // Atribuindo Valores
                cmdQry.Parameters["@Exemplo"].Value = TextBox.Text;
                cmdQry.Parameters["@Exemplo2"].Value = TextBox2.Text;
    
                // Tratamento de Erros (Try / Catch / Finally)
                try
                {
                    //Abre o banco de dados
                    dbConnection.Open();
                    
                    // Executa a Query
                    cmdQry.ExecuteNonQuery();
    
                    // Mensagem do sistema
                    MessageBox.Show("Cadastro realizado com sucesso!", "Aviso do Sistema",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (OleDbException ex)
                {
                    MessageBox.Show("O seguinte erro ocorreu: " + ex.Message);
                }
                finally
                {
                    // Fechar conexão com o banco de dados
                    dbConnection.Close();
                }
    
    }

    E no formulário eu chamo elas através do nome do Form e atribuindo a variável, porém diz ocorre erro e não prossegue, ou seja não consegue captar o valor digitado. :/

    Alguem me ajuda?

    domingo, 12 de janeiro de 2014 03:33

Respostas

  • Guilherme Z. Furtuoso,

    Cria parâmetro de entrada para seu método, fica assim:

    public class SuaClasse
        {
    
            public void CadFuncionario(string txtUsuario ,string txtSenha )
            {
               // Variável de Conexão
                        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                        + Application.StartupPath + @"\Data\banco.mdb";
    
                        // Variáveis de Conexão
                        txtUsuario = ""; // NÃO SEI QUAL VALOR ATRIBUIR ÀS VARIÁVEIS. 
                        txtSenha = ""; // NÃO SEI QUAL VALOR ATRIBUIR ÀS VARIÁVEIS.
    
                        // Criar Conexão com o Banco de Dados
                        OleDbConnection dbConnection = new OleDbConnection(strConnection);
    
                        // Criar um Comando
                        OleDbCommand cmdQry = dbConnection.CreateCommand();
    
                        // Define a instrução SQL com parâmetros
                        cmdQry.CommandText = "INSERT INTO tabelaBanco (Exemplo,Exemplo2)"
                        + " VALUES (@Exemplo, @Exemplo2)";
    
                        // Definindo os parâmetros: (Nome / Tipo / Tamanho)
                        cmdQry.Parameters.Add("@Exemplo",OleDbType.VarChar, 10);
                        cmdQry.Parameters.Add("@Exemplo2", OleDbType.VarChar, 20);            
    
                        // Atribuindo Valores
                        cmdQry.Parameters["@Exemplo"].Value = txtUsuario;
                        cmdQry.Parameters["@Exemplo2"].Value = txtSenha;
    
                        // Tratamento de Erros (Try / Catch / Finally)
                        try
                        {
                            //Abre o banco de dados
                            dbConnection.Open();
                    
                            // Executa a Query
                            cmdQry.ExecuteNonQuery();
    
                            // Mensagem do sistema
                            MessageBox.Show("Cadastro realizado com sucesso!", "Aviso do Sistema",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch (OleDbException ex)
                        {
                            MessageBox.Show("O seguinte erro ocorreu: " + ex.Message);
                        }
                        finally
                        {
                            // Fechar conexão com o banco de dados
                            dbConnection.Close();
                        }
    
            }
        }

    ai no form vc só instancia a sua classe, chama e o metodo e passa os parametros para ele !!!

                SuaClasse MeuObjeto = new SuaClasse();
    
                MeuObjeto.CadFuncionario(txtUsuario.Text, txtSenha.Text);



    Diego Almeida Barreto
    System Analyst / Software Developer

    domingo, 12 de janeiro de 2014 03:45

Todas as Respostas

  • Guilherme Z. Furtuoso,

    Cria parâmetro de entrada para seu método, fica assim:

    public class SuaClasse
        {
    
            public void CadFuncionario(string txtUsuario ,string txtSenha )
            {
               // Variável de Conexão
                        string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                        + Application.StartupPath + @"\Data\banco.mdb";
    
                        // Variáveis de Conexão
                        txtUsuario = ""; // NÃO SEI QUAL VALOR ATRIBUIR ÀS VARIÁVEIS. 
                        txtSenha = ""; // NÃO SEI QUAL VALOR ATRIBUIR ÀS VARIÁVEIS.
    
                        // Criar Conexão com o Banco de Dados
                        OleDbConnection dbConnection = new OleDbConnection(strConnection);
    
                        // Criar um Comando
                        OleDbCommand cmdQry = dbConnection.CreateCommand();
    
                        // Define a instrução SQL com parâmetros
                        cmdQry.CommandText = "INSERT INTO tabelaBanco (Exemplo,Exemplo2)"
                        + " VALUES (@Exemplo, @Exemplo2)";
    
                        // Definindo os parâmetros: (Nome / Tipo / Tamanho)
                        cmdQry.Parameters.Add("@Exemplo",OleDbType.VarChar, 10);
                        cmdQry.Parameters.Add("@Exemplo2", OleDbType.VarChar, 20);            
    
                        // Atribuindo Valores
                        cmdQry.Parameters["@Exemplo"].Value = txtUsuario;
                        cmdQry.Parameters["@Exemplo2"].Value = txtSenha;
    
                        // Tratamento de Erros (Try / Catch / Finally)
                        try
                        {
                            //Abre o banco de dados
                            dbConnection.Open();
                    
                            // Executa a Query
                            cmdQry.ExecuteNonQuery();
    
                            // Mensagem do sistema
                            MessageBox.Show("Cadastro realizado com sucesso!", "Aviso do Sistema",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch (OleDbException ex)
                        {
                            MessageBox.Show("O seguinte erro ocorreu: " + ex.Message);
                        }
                        finally
                        {
                            // Fechar conexão com o banco de dados
                            dbConnection.Close();
                        }
    
            }
        }

    ai no form vc só instancia a sua classe, chama e o metodo e passa os parametros para ele !!!

                SuaClasse MeuObjeto = new SuaClasse();
    
                MeuObjeto.CadFuncionario(txtUsuario.Text, txtSenha.Text);



    Diego Almeida Barreto
    System Analyst / Software Developer

    domingo, 12 de janeiro de 2014 03:45
  • clsFuncionarios _clsFuncionarios = new clsFuncionarios();
                _clsFuncionarios.CadastrarFuncionario(txtUsuario.Text, txtSenha.Text);
    
    // MENSAGEM DE ERRO EXIBIDA PELO VISUAL STUDIO
    
    // Erro	1	Nenhuma sobrecarga para o método 'CadastrarFuncionario' aceita 2 argumentos	C:\Users\Guilherme\Documents\Projetos\Programa\Formulários\frmCadFuncionario.cs	33	13	Programa
    

    E agora Diego?

    domingo, 12 de janeiro de 2014 04:14
  • Consegui amigo! Perfeito.

    Não sabia que era de uma maneira tão simples, muito obrigado mesmo, Abraços.

    domingo, 12 de janeiro de 2014 04:16
  • Opa , no que precisar estamos ai ..... grande abraço !!!!!!!!!!!!!


    Diego Almeida Barreto
    System Analyst / Software Developer

    domingo, 12 de janeiro de 2014 04:29