none
Gravar RRS feed

  • Pergunta

  • Alguem pode me ajudar, Estou tentado criar um método para gravar os dados digitados pelo usuário no banco de dados mas aparece o seguinte erro:

    Erro 1 Não é possível converter implicitamente o tipo 'string' em 'System.Windows.Forms.Label' C:\Users\edual\Documents\Visual Studio 2012\Projects\projeto  cursos\projeto  cursos\FrmAlunoCadastrar.cs 52 40 projeto  cursos

    Código:

    private void btnInserir_Click(object sender, EventArgs e)
            {
                FrmAlunoCadastrar frmAlunoCadastar = new FrmAlunoCadastrar();
                frmAlunoCadastar.txtNome = txtNome.Text; erro nessa linha
                MessageBox.Show("Cadastro feito com sucesso");
            }

    sexta-feira, 3 de fevereiro de 2017 12:06

Respostas

  • Edu,

    Seu código está totalmente sem conexo com o que você está falando. 

    Ele a penas está gravando em outro textbox de outro formulário, como se fosse de uma variável a para b. 

    Resumindo a sua necessidade: Você precisa pegar um valor do componente textbox e gravar no BD?

    Atenciosamente,

    • Marcado como Resposta Educsharp sexta-feira, 3 de fevereiro de 2017 18:38
    sexta-feira, 3 de fevereiro de 2017 17:26
  • Um exemplo simples:

    SqlConnection _SqlConnection = new SqlConnection("String para conexão com BD")
    
    string sql = "INSERT INTO TABLE (CAMPO) VALUES (@CAMPO)"
    
    SqlCommand _SqlCommand = new SqlCommand(sql, _SqlConnection);
    
    _SqlCommand.Parameters.Add("@CAMPO", txtNome.Text);
    
    _SqlCommand.ExecuteNonQuery();


    Além disso, você pode fazer uma verificação se o textBox está vazio, antes de realizar a gravação:

    if (txtNome.Text.Trim() == string.Empty) {
     MessageBox.Show("O campo Nome é obrigatório!");
    }
    else
    {
     //Código para atualizar o BD 
    }

    Lembrando que você por fazer um método para verificação do campo vazio, no qual ele retorna true ou false.

    Atenciosamente,



    sexta-feira, 3 de fevereiro de 2017 17:42
  • Entendo, você pode seguir um padrão de projeto que melhor se adapte. Com isso essas manutenções ficam mais fáceis de fazer.

    Quando você se sentir confortável, pode marcar o post como solucionado para que outras pessoas com os mesmo problemas possam encontrar a solução. 

    Atenciosamente,

     
    • Marcado como Resposta Educsharp sexta-feira, 3 de fevereiro de 2017 18:39
    sexta-feira, 3 de fevereiro de 2017 18:29

Todas as Respostas

  • Bom dia!

    Estou saindo aqui, mas vou responder rapidinho, desculpa qualquer coisa. 

    Tenta atribuir a propriedade Text do componente do formulário 

    frmAlunoCadastar.txtNome.Text = txtNome.Text; 

    Qualquer coisa, posta a mensagem do erro.

    Atenciosamente,

    sexta-feira, 3 de fevereiro de 2017 12:38
  • Edu,

    você esta instanciando a classe do formulario pra que ? até ai você não fez vinculo nenhum com o banco de dados..... 

    se vc fizer frmAlunoCadastar.txtNome.Text = txtNome.Text;  provavelmente o erro deve parar , porem ainda não tera vinculo algum com o banco de dados.


    Diego Almeida Barreto</strong> <br/> <em>System Analyst / Software Developer</em> <br/> <img </p> </div>

    sexta-feira, 3 de fevereiro de 2017 12:54
  • Ola Diego, obrigado pela resposta, exatamente, vc esta certo, ñ deu erro porém esta sem vinculo com o banco, digito nos campos, clico em gravar, aparece a mensagem "Cadastro feito com sucesso" porem ñ esta gravando nada, poderia me ajudar, dei uma modificada no código, mas a dificuldade esta em conexao com o banco mesmo.

    private void btnInserir_Click(object sender, EventArgs e)
            {
                FrmAlunoCadastrar frmAlunoCadastar = new FrmAlunoCadastrar();
                frmAlunoCadastar.txtNome.Text = txtNome.Text;
                DataContextFactory cx = new DataContextFactory(); 
                MessageBox.Show("Cadastro feito com sucesso");
            }

    sexta-feira, 3 de fevereiro de 2017 16:57
  • Edu,

    Seu código está totalmente sem conexo com o que você está falando. 

    Ele a penas está gravando em outro textbox de outro formulário, como se fosse de uma variável a para b. 

    Resumindo a sua necessidade: Você precisa pegar um valor do componente textbox e gravar no BD?

    Atenciosamente,

    • Marcado como Resposta Educsharp sexta-feira, 3 de fevereiro de 2017 18:38
    sexta-feira, 3 de fevereiro de 2017 17:26
  • Sim isso mesmo, estou fazendo em camadas
    sexta-feira, 3 de fevereiro de 2017 17:30
  • Um exemplo simples:

    SqlConnection _SqlConnection = new SqlConnection("String para conexão com BD")
    
    string sql = "INSERT INTO TABLE (CAMPO) VALUES (@CAMPO)"
    
    SqlCommand _SqlCommand = new SqlCommand(sql, _SqlConnection);
    
    _SqlCommand.Parameters.Add("@CAMPO", txtNome.Text);
    
    _SqlCommand.ExecuteNonQuery();


    Além disso, você pode fazer uma verificação se o textBox está vazio, antes de realizar a gravação:

    if (txtNome.Text.Trim() == string.Empty) {
     MessageBox.Show("O campo Nome é obrigatório!");
    }
    else
    {
     //Código para atualizar o BD 
    }

    Lembrando que você por fazer um método para verificação do campo vazio, no qual ele retorna true ou false.

    Atenciosamente,



    sexta-feira, 3 de fevereiro de 2017 17:42
  • Muito obrigado Gabriel. esclareceu bastante, mas estou verificando aqui que tenho que criar mais duas classes de conexao com BD, vou implementar aqui , valeu!
    sexta-feira, 3 de fevereiro de 2017 18:03
  • De nada, precisando é só avisar.

    Mas a dúvida original foi sanada?

    sexta-feira, 3 de fevereiro de 2017 18:11
  • Foi sim, mas ainda tenho que fazer compatibilidade com minhas classes e variaveis.
    sexta-feira, 3 de fevereiro de 2017 18:17
  • Entendo, você pode seguir um padrão de projeto que melhor se adapte. Com isso essas manutenções ficam mais fáceis de fazer.

    Quando você se sentir confortável, pode marcar o post como solucionado para que outras pessoas com os mesmo problemas possam encontrar a solução. 

    Atenciosamente,

     
    • Marcado como Resposta Educsharp sexta-feira, 3 de fevereiro de 2017 18:39
    sexta-feira, 3 de fevereiro de 2017 18:29
  • Ok valeu, sou novo aqui rs, então eu sou recem formado em ciencia da computação. porem na faculdade ñ tive tempo de focar em uma linguagem só, ai agora estou estudando em casa C# com SqlServer, através de aulas do Youtube e pesquisas google, mas é muito dificil estudar sozinho, mas enfim, amo desenvolvimento e quero o mais rapido possivel arrumar um emprego na area.
    sexta-feira, 3 de fevereiro de 2017 18:37
  • Show de bola Edu. 

    Eu tenho um canal no youtube, porém paralisei por causa de projetos e estudos que ocupam muito tempo.

    Uma dica, a Microsoft conta com muita coisa disponível para quem está iniciado e para quem está avançado, por exemplo: 

    https://mva.microsoft.com/

    https://msdn.microsoft.com/pt-BR/library/67ef8sbd.aspx?f=255&MSPPError=-2147217396

    Além disso, no próprio forum, senão me engano, possui um post(Ele é o primeiro) que tem vários link pertinente a area de desenvolvimento. 

    No demais, estou torcendo por você. Qualquer coisa, fique a vontade para criar um novo post. 

    Bons estudos!

    Atenciosamente,


    sexta-feira, 3 de fevereiro de 2017 18:57