none
Adicionando linhas a um DataGridView RRS feed

  • Pergunta

  • Olá jovens, preciso de uma ajudinha em um projeto.

    Eu possuo o seguinte formulário:

    Eu preciso inserir a pessoinha do combobox no datagrid por meio do botao adicionar funcionario. Para isso eu fiz uma pesquisa no botao pesquisando os dados da pessoa dessa forma

    //txtFun é o combobox que seleciona o funcionário

    string sql = string.Format("select * from tb_funcionario where idFuncionario = " + txtFun.SelectedValue.ToString()); // INSTANCIANDO A CONEXÃO MySqlConnection conexao = ConexaoMySQL.Conectar(); //ABRIR O BANCO DE DADOS POR MEIO DA INSTÂNCIA CONEXÃO conexao.Open(); // INTERPRETAR O COMANDO SQL QUE VEM DA VARIÁVEL DO TIPO STRING MySqlCommand comandoSQL = new MySqlCommand(sql, conexao); //obtem um datareader MySqlDataReader reader = comandoSQL.ExecuteReader(); if (reader.Read()) { // Adiciona a pessoa selecionada ao DataGrid dataGridView1.Rows.Add(null, reader["idFuncionario"].ToString(), reader["nomeFun"].ToString(), reader["celular"].ToString(), reader["turno"].ToString()); }


    Mas o que ocorre é que ele me envia a seguinte mensagem:

    Não é possível adicionar linhas programaticamente à coleção de linhas de DataGridView quando o controle é associado a dados.

    Já testei a posição das células e estão na ordem correta e os dados da pesquisa estão vindo corretamente.

    Então gostaria de saber o que fazer para solucionar este problema e inserir vários funcionarios ao datagrig, se puderem me ajudar ^^

    terça-feira, 26 de maio de 2015 15:13

Respostas

  • Se a grid já estiver com DataSource setado não há como adicionar dados, uma saida seria você criar um DataTable e setar para a sua DataGridView

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:32
    • Não Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:50
    • Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:50
    terça-feira, 26 de maio de 2015 15:59
  • Na verdade, eu vou fazer o seguinte, como eu precisava carregar os dados pro grid para depois cadastrar eu vou cadastrar o cargo do funcionario, alterando seu fkcargo e depois só recarregar o grid por meio do método Listar.
    • Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:50
    terça-feira, 26 de maio de 2015 18:50

Todas as Respostas

  • Se a grid já estiver com DataSource setado não há como adicionar dados, uma saida seria você criar um DataTable e setar para a sua DataGridView

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:32
    • Não Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:50
    • Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:50
    terça-feira, 26 de maio de 2015 15:59
  • e como faria com o datatable sem alterar os dados que já estão lá?
    terça-feira, 26 de maio de 2015 18:31
  • Você terá que ler os dados já contidos na DataGridView para o DataTable e depois adicionar o dado novo.
    Convertendo DataGridView para DataTable

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 26 de maio de 2015 18:37
  • Na verdade, eu vou fazer o seguinte, como eu precisava carregar os dados pro grid para depois cadastrar eu vou cadastrar o cargo do funcionario, alterando seu fkcargo e depois só recarregar o grid por meio do método Listar.
    • Marcado como Resposta PaulaMelo terça-feira, 26 de maio de 2015 18:50
    terça-feira, 26 de maio de 2015 18:50
  • Humm entendi, bacana o form de seu projeto

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 26 de maio de 2015 18:56
  • Sério?? Obrigada, eu tenho uma boa equipe ^^ (de duas pessoas)

    terça-feira, 26 de maio de 2015 19:06