kazzx Posted December 23, 2009 at 09:56 AM Report Share #301977 Posted December 23, 2009 at 09:56 AM viva de novo, tenho dois formulários, onde num deles tenho um datagridview e um botão, noutro tenho apenas uma label. sempre que eu clicar no botão é aparecido um novo campo no datagridview, seleccionado da BD. a minha questão é: como faço para esse mesmo campo que apareceu no datagridview, aparecer também ao mesmo tempo na label do outro formulário. cumps, 😉 Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 10:02 AM Report Share #301978 Posted December 23, 2009 at 10:02 AM Quando dizes campo, referes-te a uma linha com uma coluna, correcto? Basta aproveitares o dataadapter ou a datatable que preenches quando executas a query e retirares o valor da coluna zero na linha zero e dares directamente ao label. Caso seja uma coluna de uma série delas, basta escolher a coluna que pretendes. Como é para preencher algo numa label, estou a assumir que o teu resultado vem sempre como uma única linha. Por exemplo, assumindo que não estás a criar instâncias do form2: Form2.Label1.Text= Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 10:12 AM Author Report Share #301979 Posted December 23, 2009 at 10:12 AM é a row e coluna sim .. portanto, quero que na label do outro formulário, apareça sempre a primeira row da primeira coluna do datagridview.. por exemplo, após o clique do botão apareceu "João" na row da primeira coluna do datagridview, esse mesmo 'João' terá de aparecer na label .. tipo isso Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 10:16 AM Report Share #301980 Posted December 23, 2009 at 10:16 AM Então basta o que eu te disse. Ou até se quiseres, vais buscar o valor mesmo à datagrid. É como desejares. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 10:20 AM Author Report Share #301981 Posted December 23, 2009 at 10:20 AM e como busco o valor mesmo à datagrid? Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 10:24 AM Report Share #301982 Posted December 23, 2009 at 10:24 AM É raro usar datagridview, mas penso que podes fazer algo do género: Dim o_tal_valor as String = DGView.Rows(0).Cells(0).Value.ToString) Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 10:30 AM Author Report Share #301983 Posted December 23, 2009 at 10:30 AM eu ando para aqui a inventar e colocar isto: 'Verificar se podemos adicionar mais um user aos postos If dgv1.Rows.Count - 1 = postos Then Beep() MsgBox("Todos os postos já se encontram ocupados.") Else 'Tratar aqui de ir buscar o próximo 'Dim cmd As OleDbCommand = conn.CreateCommand cmd.CommandText = "Select nome FROM espera" painel.Label1.Text = dgv1.Rows(0).Cells(0).Value.ToString leitor.Close() leitor = cmd.ExecuteReader() If leitor.Read() Then dgv1.Rows.Add(leitor("nome"), pst.Items(0), Format(DateAndTime.TimeSerial(Hour(Now), Minute(Now) + 30, Second(Now)), "hh:mm:ss")) Dim nome As String = leitor("nome") leitor.Close() 'Eliminar o nome da tabela Espera cmd.CommandText = "delete FROM espera where nome='" & nome & "'" cmd.ExecuteNonQuery() Else Beep() MsgBox("Não existem pessoas em fila de espera.", MsgBoxStyle.Exclamation) End If End If há ali pelo meio do código qualquer coisa como: painel.Label1.Text = dgv1.Rows(0).Cells(0).Value.ToString está claramente incorrecto. está incorrecto por várias razões.. não sei qual o método a atribuir, nem em que parte do código colocar :x além disso dá-me erro. Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 10:33 AM Report Share #301984 Posted December 23, 2009 at 10:33 AM Tens de meter isso, obviamente, depois de lá teres os dados que pretendes, e não antes. Eu não tinha a certeza do código que te dei, mas entretanto já testei e funcionou perfeitamente para uma datatable que dei ao datasource da datagridview. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 10:39 AM Author Report Share #301985 Posted December 23, 2009 at 10:39 AM alterei a parte do código que dizia: If leitor.Read() Then dgv1.Rows.Add(leitor("nome"), pst.Items(0), Format(DateAndTime.TimeSerial(Hour(Now), Minute(Now) + 30, Second(Now)), "hh:mm:ss")) Dim nome As String = leitor("nome") leitor.Close() 'Eliminar o nome da tabela Espera cmd.CommandText = "delete FROM espera where nome='" & nome & "'" cmd.ExecuteNonQuery() Else para: If leitor.Read() Then dgv1.Rows.Add(leitor("nome"), pst.Items(0), Format(DateAndTime.TimeSerial(Hour(Now), Minute(Now) + 30, Second(Now)), "hh:mm:ss")) painel.Label1.Text = dgv1.Rows(0).Cells(0).Value Dim nome As String = leitor("nome") leitor.Close() 'Eliminar o nome da tabela Espera cmd.CommandText = "delete FROM espera where nome='" & nome & "'" cmd.ExecuteNonQuery() Else e na label já aparece alguma coisa, ou seja, aparece sempre o primeiro campo do datagridview. agora, eu queria que sempre que clicasse no tal botão, o nome que aparecesse na label desaparecesse e que aparecesse o novo nome do datagridview.. faço-me entender? por exemplo: clico no botão e aparece 'João' no datagridview e por consequente na label, clico outra vez no botão e aparece 'Maria' no datagridview e ao mesmo tempo queria que desaparecesse o 'João' da label e aparecesse 'Maria' e por aí fora.. Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 10:42 AM Report Share #301986 Posted December 23, 2009 at 10:42 AM Só tens de meter a tal linha sempre que a datagrid sofrer alterações. Se queres um ponto de referência, deves meter essa linha depois dos CLOSE dos leitores. Agora só tens de a espalhar para todos os sítios que causam alteração aos dados que vês na datagrid. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 11:11 AM Author Report Share #301987 Posted December 23, 2009 at 11:11 AM mas tipo, eu não posso colocar a linha porque há medida que clico no botão novas linhas são geradas no datagridview. faço-me entender? por exemplo, clico no botão e na linha 0 aparece o 'João', por consequente na label. torno a clicar no botão e na linha 1 aparece a 'Maria', já não aparece a 'Maria' na label. no datagridview temos N nomes, cada um em linhas diferentes. é tipo isto .. :x Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 11:14 AM Report Share #301988 Posted December 23, 2009 at 11:14 AM Se há linhas diferentes tens de alterar o índice do Rows(indice). Se a ideia é aparecer sempre o nome da última linha, acho que podes fazer alguma coisa do género: DG.Rows(DG.Rows.Count-1) ou seja: painel.Label1.Text = dgv1.Rows(dgv1.Rows.Count-1).Cells(0).Value.ToString Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 11:20 AM Author Report Share #301990 Posted December 23, 2009 at 11:20 AM e coloco a seguir de quê? ou entre que linhas do código (podes-me dizer olhando para o código que deixei em respostas anteriores) é que assim como disseste não está a dar. Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 11:25 AM Report Share #301992 Posted December 23, 2009 at 11:25 AM No mesmo sítio onde está a outra. "Não está a dar" é vago. Eu não tenho a certeza dessa síntaxe, mas a IDE dá uma ajudinha. Qual é o erro? Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 11:28 AM Author Report Share #301993 Posted December 23, 2009 at 11:28 AM simplesmente não aparece nada na label, nada mesmo. coloquei assim: If leitor.Read() Then dgv1.Rows.Add(leitor("nome"), pst.Items(0), Format(DateAndTime.TimeSerial(Hour(Now), Minute(Now) + 30, Second(Now)), "hh:mm:ss")) painel.Label1.Text = dgv1.Rows(dgv1.Rows.Count - 1).Cells(0).Value Dim nome As String = leitor("nome") leitor.Close() 'painel.Label1.Text = dgv1.Rows(0).Cells(0).Value 'Eliminar o nome da tabela Espera cmd.CommandText = "delete FROM espera where nome='" & nome & "'" cmd.ExecuteNonQuery() Else Beep() MsgBox("Não existem pessoas em fila de espera.", MsgBoxStyle.Exclamation) End If simplesmente nao aparece nada na label. Link to comment Share on other sites More sharing options...
ribeiro55 Posted December 23, 2009 at 11:35 AM Report Share #301996 Posted December 23, 2009 at 11:35 AM Parece-me tudo bem. Excepto talvez isto: Se tiveres na tua datagridview, a linha de registo novo activa, terás de fazer painel.Label1.Text = dgv1.Rows(dgv1.Rows.Count - 2).Cells(0).Value Fora isso, deveria funcionar. Acabei de o testar. Tens a certeza que o estás a chamar em todos os sítios que alterem os dados na datagrid? Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
kazzx Posted December 23, 2009 at 11:42 AM Author Report Share #301997 Posted December 23, 2009 at 11:42 AM exacto exacto, é isso. já dá. obrigado pela ajuda 😉 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now