none
Retornar a linha selecionada do DataGridView?

    Question

  • Estou usando o Visual Basic 2005 + SQL Server 2005.

    Eu estou montando uma pesquisa por nome, e monto meu DataGridView à partir de meu DataSet, bom até está tudo blz.

    Agora eu queria saber como eu tenho que fazer para retornar a linha selecionada do DataGridView para a tela que chamou essa tela de pesquisa que eu montei?

    Friday, June 23, 2006 3:35 PM

Answers

  • Roberto,

    Se você não usa DataBinding é só você atribuir os dados da linha selecionada no DataGridView para os TextBoxes do seu formulário de edição. Você abre o formulário de pesquisa a partir do formulário de edição? Se você faz isso, basta você mandar uma referência do form de edição para o form de pesquisa e então mudar os controles depois que o usuário selecionar o item.

    Aqui eu explico como mudar controles de um form a partir de outro form:

    http://thespoke.net/blogs/fbcjunior/archive/2005/09/06/TrocarValoresEntreForms.aspx

    Para você acessar os valores da linha selecionada no DataGridView, use a propriedade SelectedRow. Por exemplo, isto seria como acessar o valor da primeira coluna da primeira linha selecionada:

    seuDataGridView.SelectedRow.Cell(0).Value

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    Sunday, June 25, 2006 5:56 PM
    Moderator

All replies

  • Roberto

    Use a propriedade SeletedRows ou SeletedCells

    Boa sorte!!!

    Friday, June 23, 2006 3:44 PM
  • Mais como fazer ?

    Você poderia me passar um exemplo de código?
    Eu sou iniciante e oque eu tenho feito está sendo feito metendo a cara mesmo, por isso não sei ao certo como se usar os componentes...

    Comprei o Livro "Begin Visual Basic .Net" e ainda o estou lendo.

    Friday, June 23, 2006 3:47 PM
  • Roberto,

    Tem um exemplo no meu blog usando DataGrid, mas é aplicável para DataGridView também:

    http://thespoke.net/blogs/fbcjunior/archive/2006/05/04/FormPesquisaFormEdicaoFAQDataGrid.aspx

    Abraços,
    Francisco
    Ok,Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    Friday, June 23, 2006 4:43 PM
    Moderator
  • Não consegui.
    Saturday, June 24, 2006 6:33 PM
  • Roberto,

    Chegou a baixar o exemplo? Como está seu código?

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    Sunday, June 25, 2006 10:25 AM
    Moderator
  • Baixei sim.

    Só que eu sou muito inexperiente e estou iniciando no Visual Basic.

    Estou com praticamente o aplicativo pronto e preciso apresentar amanhã a banca da faculdade.
    Eu quando comecei ele não os associei a nenhum BindingContext e agora tentar fazer isso vai me dar tempo e muito trabalho, já que não sei direito como fazer. Então preferi deixar como está.

    Futuramente eu gostaria de analizar um programa simples feito com TableAdapters e DataSets para que eu possa entender o conceito direito e construir meus próximos programas dessa forma.

    Eu sei a lógica, mais apenas a lógica não basta eu preciso entender como utilizar o VB da melhor forma possível, Ex eu só a pouco tempo estou reutilizando as minhas Funções, pq eu não sabia como fazer para executalas novamente .

    Se você tiver uma aplicação usando essas construções ou a uma que você considere ter sido feita da melhor forma possível eu gostaria de analiza-la.

    Quando eu digo melhor forma é que quando iniciei esse projeto eu construía tudo dessa forma ex.

    comando.CommandText = "DELETE FROM Aluno FROM Aluno INNER JOIN Pessoa ON Aluno.A_Codigo = Pessoa.P_Codigo WHERE (Pessoa.P_Codigo = @P_Codigo)"
    comando.Parameters.AddWithValue("@P_Codigo", P_Codigo)
    comando.ExecuteNonQuery()

    Agora estou fazendo assim:

    PessoaTableAdapter.Insert(P_Nome, P_Email, P_Nascimento, P_Endereco, P_Bairro, P_Cidade, P_UF, P_Cep, P_CPF, P_Telefone)

    Ficou mais fácil para eu manipular os dados, mais eu sinto que ainda não estou construindo corretamente o aplicativo, já que eu não consigo preencher os campos do formulário automáticamente com base em um código digitado ou por uma consulta com o predaço de um nome digitado.

    Eu estava tentando fazer uma tela de consulta genérica que retornasse ao formulário que a chamou os dados pessoais de cadastro, já que eu fiz uma normalização em meu banco.

    Acho que acabei falando de mais e não expliquei direito , se puder me ajudar estamos aí *rs*

    Sunday, June 25, 2006 2:13 PM
  • Roberto,

    Você não precisa associar nada com o BindingContext, usando DataBinding é só fazer referência a ele e ele vai lhe devolver o CurrencyManager da coleção que você passar como argumento. Ou seja, é só fazer uso dele, não tem que criar nada manualmente.

    O único outro exemplo que eu tenho é bem simples e ainda foi feito com as versões anteriores do .Net Framework:

    http://thespoke.net/blogs/fbcjunior/archive/2005/11/23/Exemplos.aspx

    É o CadastroVb.zip, mas não vai lhe ajudar com esta questão. Para o lance da pesquisa, é só aquele post que lhe indiquei anteriormente que tenho como exemplo mesmo.

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    Sunday, June 25, 2006 2:29 PM
    Moderator
  • Infelizmente eu não descobri esse forum antes. (O povo aqui é super gente boa e responde rápido as dúvidas da galera).

    Agora e rezar pra dar certo o meu projeto. 

    Eu cheguei até uma hora começar a usar DataBinding mais depois eu estava me perdendo pq a mesma tela que Inclui, Deleta e Atualiza, na hora de fazer a pesquisa para retornar os dados me embolei todo então resolvi não mexer para não estragar oque já estava feito...

    Afinal eu perdi um tempão validando campos e criando regras.

    Sunday, June 25, 2006 2:45 PM
  • Roberto,

    Se você não usa DataBinding é só você atribuir os dados da linha selecionada no DataGridView para os TextBoxes do seu formulário de edição. Você abre o formulário de pesquisa a partir do formulário de edição? Se você faz isso, basta você mandar uma referência do form de edição para o form de pesquisa e então mudar os controles depois que o usuário selecionar o item.

    Aqui eu explico como mudar controles de um form a partir de outro form:

    http://thespoke.net/blogs/fbcjunior/archive/2005/09/06/TrocarValoresEntreForms.aspx

    Para você acessar os valores da linha selecionada no DataGridView, use a propriedade SelectedRow. Por exemplo, isto seria como acessar o valor da primeira coluna da primeira linha selecionada:

    seuDataGridView.SelectedRow.Cell(0).Value

    Abraços,
    Francisco
    OK, Computer - http://thespoke.net/blogs/fbcjunior/default.aspx

    Sunday, June 25, 2006 5:56 PM
    Moderator