Andre2308 0 Denunciar post Postado Março 17, 2009 Caros.. Eu estou com um problema.. Eu estou querendo ao gravar um registro posicionar esse registro no datagridview.. A estrutura que eu uso é da seguinte forma: Eu efetuo a gravaçao através do método ExecuteScalar() ele me retorna a posiçao do registro que foi gravado...só que eu nao sei usar essa posiçao no datagridview Será que alguem poderia me ajudar?!?!?! Muito grato Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 17, 2009 Basta recarregar sua grid, populando ela novamente o registro já irá aparecer. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 19, 2009 Caro amigo! Na verdade isso eu já faço....eu quero além de exibir o registro novo no grid, quero selecioná-lo para que os dados sejam exibidos nos controles texbox muito grato pela atençao. Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 19, 2009 Veja se isso ajuda: http://www.vcskicks.com/datagridview-selection.php Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 19, 2009 Aqui eu gravo e no proprio objGrupoCOntasInformation vem o código novo gravado através do método ExecuteScalar() Quando eu chamo o atualizaDataTable() ele vai na funçao abaixo e recupera todos, inclusive o novo registro... Esse é o problema...Como eu faço pra depois disso eu posicionar o novo registro selecionado?!?!?!?!?!?!?! //inclusao try { objGrupoContasBLL.incluir(objGrupoContasInformation);//camada de negócios que retorna o codigo do registro novo } catch (Exception ex) { MessageBox.Show(ex.Message); } atualizaDataTable(); // somenteLeitura(estado = State.browse); vinculaControles(true); //fim inclusao private void atualizaDataTable() { objGrupoContasBLL = new GrupoContasBLL(); dgvTabela.DataSource = objGrupoContasBLL.getTodosGrupoContas; } Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 Ele retorna a linha ou o identificador do novo registro? Se for o identificador, após atualizar a grid, você vai precisar fazer um laço em todas as linhas do grid e procurar o registro que acabou de ser incluido. Assim que você achar, você vai ter o index da linha que esse registro está, dai é só usar o esquema que eu passei no link. Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 20, 2009 Ele retorna o índice da tabela....... Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 Então vai ter que fazer aquilo que eu havia mencionado, fazer um laço em todas as linhas procurando pelo registro usando o índice e dai usar a técnica do link. Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 20, 2009 Oenning! Mas pra tabelas com grande volume de dados fica inviável! Nessas situaçoes o que você recomenda usar!!!?? Eu estou começando em .net agora aí já viu né!?!? Obrigado por tudo!!! você tem sido uma ajuda e tanto Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 20, 2009 Você usa campo identity? Você poderia ordernar por esse campo de modo que mostre primeiro o último registro incluido. Agora se for ordenado por nome, e você inseriu bem no meio de todos os registros, acho que não tem como fazer sem ser com um loop. Espere mais opiniões, nunca fiz uma grande aplicação com windows forms. Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 21, 2009 Oenning.... Se eu fosse usar o identity. Como seria!?!?!? Eu posso mudar....ou até mesmo nos proximos cadastros!!! Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 21, 2009 Insira uma coluna Identity na sua tabela e na hora de montar o sql, faz uma ordenção decrescente pelo campo identity. Mas assim você perderia uma ordenação importante, por nome por exemplo. Mas você pode deixar livre para o usuário fazer a ordenação que ele quiser. Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 21, 2009 Oenning...Tudo bem...mas a minha duvida ainda perstiste....Como eu vou selecionar o registro gravado ou alterado no grid?????? Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 21, 2009 No link que eu postei explica. Faça: DataGridView1.CurrentCell = DataGridView1.Rows[index].Cells[0] Ainda acho que o loop até achar a linha desejada é a melhor solução. Tem em média quantos registros essa grid? Grids com muitos registros é um problema para o usuário, tente fazer uma filtragem default para trazer poucos registros e se ele quiser mais, ele pode filtrar de outra maneira. Valeu! Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 21, 2009 Desculpe Oenning...sou bem inexperiente na linguagem....Esse index seria o que!?!?! O conteudo do campo identity? obrigado!!! Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 22, 2009 Index é o númera da linha que você quer selecionar. Se você tiver 6 linhas e fizer: DataGridView1.CurrentCell = DataGridView1.Rows[3].Cells[0]A quarta linha, primeira coluna será selecionada. (Esse index são zero-based, ou seja, começa em 0). No seu caso você vai ter que fazer um loop em todas as linhas até descobrir qual o index da linha, e só então usar. Não testei, mas no site diz que isso também funciona: dataGrid.Rows[index].Selected = true; Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Março 22, 2009 Meu caro Oenning... pelo Loop até consigo sem problemas....mas eu nao queria ter que fazer um loop, entende??? No Delphi existia um método que me dava a posicao do registro no grid, o metodo BookMark... Como você é experiente, e nao tem e mente como se faz pra filtrar sem loop eu vou ceder e fazer pelo loop mesmo... você sempre muito solidário e atencioso...Muito obrigado mesmo.....só nao encerra ainda pq eu vou ver se eu vou ter alguma duvida fazendo pelo loop...vou começar agora mesmo!!! Compartilhar este post Link para o post Compartilhar em outros sites
Andre2308 0 Denunciar post Postado Abril 3, 2009 muito obrigado.....consegui fazer pelo loop... Compartilhar este post Link para o post Compartilhar em outros sites
wimpactus 0 Denunciar post Postado Março 27, 2013 Respondendo esse post de 2009, é só usar o FIND do DataBind para posicionar novamente no registro desejado. http://msdn.microsoft.com/pt-br/library/vstudio/ms158165.aspx int pos = source1.Find("Codigo", 1234);source1.Position = pos; []'s Win Caros..Eu estou com um problema..Eu estou querendo ao gravar um registro posicionar esse registro no datagridview..A estrutura que eu uso é da seguinte forma:Eu efetuo a gravaçao através do método ExecuteScalar()ele me retorna a posiçao do registro que foi gravado...só que eu nao sei usar essa posiçao no datagridviewSerá que alguem poderia me ajudar?!?!?!Muito grato Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Março 28, 2013 Este post já foi resolvido. Compartilhar este post Link para o post Compartilhar em outros sites