Etiqueta Posted August 23, 2012 at 10:56 AM Report Share #473233 Posted August 23, 2012 at 10:56 AM (edited) Bom dia, Estou a desenvolver um programa em C# com resurso a datasets. Fiz um guardar e está a funcionar correctamente. Agora fiz um alterar, está a agarrar em todos os valores menos nos da combobox. O que se sucede é que a combobox aparece com o número que ficou na base de dados e quando expando a combobox os resultados estão escritos, por exemplo, usado, novo, remodelado, é esse o resultado pretendido. Ou seja, em vez de aparecer o número queria que aparece-se mesmo o nome do campo da tabela associada. Nesse formulário de guardar são inseridas também fotografias que estão a guardar o caminho na base de dados correctamente, quando faço o alterar não aparece imagem nenhuma nas picturebox. Podem ajudar-me nestes dois problemas sff? Obrigada desde já pela atenção. Edited August 23, 2012 at 10:59 AM by Etiqueta Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
Etiqueta Posted August 23, 2012 at 11:40 AM Author Report Share #473238 Posted August 23, 2012 at 11:40 AM o problema das combobox já stá resolvido. Coloquei: DataSource: TabelaAssociadaBindingSource DisplayMember: CampoTabelaAssociada ValueMember: Id_TabelaAssociada SelectedValue: TabelaPrincipalBindingSource - Id_Correspondente Só falta resolver o problema das fotografias. Alguma ajuda? Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 23, 2012 at 01:52 PM Report Share #473249 Posted August 23, 2012 at 01:52 PM Como é que carregas a fotografia para a PictureBox? Tens que mostrar código caso contrário é dificil ajudar. Devias estar a fazer algo do género: Bitmap imagem = new Bitmap("CaminhofísicodoFicheiro"); pictureBox.Image = (Image)imagem; Link to comment Share on other sites More sharing options...
Sr Inovação Posted August 23, 2012 at 04:20 PM Report Share #473266 Posted August 23, 2012 at 04:20 PM TENS DE Link to comment Share on other sites More sharing options...
rumbafum Posted August 23, 2012 at 05:07 PM Report Share #473276 Posted August 23, 2012 at 05:07 PM obrigado 😉 Link to comment Share on other sites More sharing options...
Etiqueta Posted August 24, 2012 at 10:29 AM Author Report Share #473349 Posted August 24, 2012 at 10:29 AM (edited) não dá erro mas não apresenta a imagem. tenho o código assim neste momento: string caminhoFoto1 = @"Fotografias/" + DataSet.Tables["NomeTabela"].Columns["Foto1"].ToString(); foto1PictureBox.ImageLocation = caminhoFoto1; Edited August 24, 2012 at 10:37 AM by Etiqueta Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 24, 2012 at 05:15 PM Report Share #473410 Posted August 24, 2012 at 05:15 PM Isto: DataSet.Tables["NomeTabela"].Columns["Foto1"].ToString() Não te dá o valor que pretendes. Tens que aceder a uma linha da tabela e ver o valor da coluna que pretendes. Desta forma: DataSet.Tables["NomeTabela"].Rows[0]["Foto1"].ToString() Usei a linha 0 apenas como exemplo, estou a supôr que quando executas este código o teu DataSet está correctamente preenchido e portanto terás pelo menos uma linha nessa tabela... Link to comment Share on other sites More sharing options...
Etiqueta Posted August 27, 2012 at 09:15 AM Author Report Share #473627 Posted August 27, 2012 at 09:15 AM tenho linhas na tabela mas ainda não apresenta a imagem Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 27, 2012 at 09:44 AM Report Share #473629 Posted August 27, 2012 at 09:44 AM Fizeste a alteração que disse? Link to comment Share on other sites More sharing options...
Etiqueta Posted August 27, 2012 at 10:28 AM Author Report Share #473630 Posted August 27, 2012 at 10:28 AM (edited) sim fiz, tenho assim: string caminhoFoto1 = @"Fotografias/" + DataSet.Tables["NomeTabela"].Rows[0]["Foto1"].ToString(); foto1PictureBox.ImageLocation = caminhoFoto1; já consegui. muito obrigada foto1PictureBox.ImageLocation = DataSet.Tables["NomeTabela"].Rows[0]["Foto1"].ToString(); Aparece a imagem mas essa mantém para todos os registo e não era isto que queria. Pretendia que cada registo apresenta-se as suas fotos que estão guardadas na base de dados Edited August 27, 2012 at 10:26 AM by Etiqueta Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
Etiqueta Posted August 27, 2012 at 10:42 AM Author Report Share #473634 Posted August 27, 2012 at 10:42 AM estou a fazer assim: int i; for (i = 0; i<= DataSet.Tables["NomeTabela"].Rows.Count; i++) { foto1PictureBox.ImageLocation = DataSet.Tables["NomeTabela"].Rows[i]["Foto1"].ToString(); } mas é apresentado um erro: "Não existe linha na posição 2." na base de dados tenho um id 1 e 3 Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 27, 2012 at 12:10 PM Report Share #473651 Posted August 27, 2012 at 12:10 PM o ciclo está errado. Retira a igualdade para ficar assim: for (i = 0; i < DataSet.Tables["NomeTabela"].Rows.Count; i++) Agora o que estás a fazer dentro do ciclo, se percebi bem, é afectar sempre o mesmo controlo. Não me parece que seja o que pretendes. Link to comment Share on other sites More sharing options...
Etiqueta Posted August 27, 2012 at 01:57 PM Author Report Share #473666 Posted August 27, 2012 at 01:57 PM já não aparece o erro mas aparece sempre as mesmas imagens para todos os registos. O que pretendia era que as imagens alterassem consoante o cainho que está guardado na base de dados Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 27, 2012 at 04:58 PM Report Share #473684 Posted August 27, 2012 at 04:58 PM isso foi o que te disse... Estás a afectar sempre o mesmo controlo (foto1PictureBox). É normal que te mostre uma única imagem. no ciclo for vais ter de tratar isso... Link to comment Share on other sites More sharing options...
Etiqueta Posted August 28, 2012 at 09:04 AM Author Report Share #473761 Posted August 28, 2012 at 09:04 AM mas eu quero que as fotos apareçam sempre nessa picturebox. mas que variem consoante o registo. o que sugeres? Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 28, 2012 at 01:15 PM Report Share #473796 Posted August 28, 2012 at 01:15 PM Não percebi... Tens uma única pictureBox ou tens várias? A PictureBox está numa grelha ou algo parecido? É um form com uma única PictureBox e deve aparecer a imagem do registo que está a ser consultado é isso? Se é esta diria que o teu DataSet só deveria ter esse registo. Se tens od dados de todos os registos no DataSet tens que filtrar o DataSet para te dar uma única linha com a informação respeitante ao registo que queres. Para isso podes usar a instrução Select da DataTable. Algo assim: DataSet.Tables["NomeTabela"].Select("id = whatever")[0] Link to comment Share on other sites More sharing options...
Etiqueta Posted August 28, 2012 at 02:15 PM Author Report Share #473805 Posted August 28, 2012 at 02:15 PM É um form com uma única PictureBox e deve aparecer a imagem do registo que está a ser consultado é isso? sim é isso tenho assim: for (i = 1; i < DataSet.Tables["NomeTabela"].Rows.Count; i++) { foto1PictureBox.ImageLocation = DataSet.Tables["NomeTabela".Select("Id = [i]").ToString(); } aparentemente não apresenta erro, mas quando corro o programa, surge um erro: "Não é possível localizar a coluna ." Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
rumbafum Posted August 28, 2012 at 04:18 PM Report Share #473830 Posted August 28, 2012 at 04:18 PM Mas qual é o id do registo que estás a consultar? Não é o i de certeza. Deves ter isso quando abres o form correcto? É esse Id que terás de usar no select. Portanto esquece o ciclo que parece-me não precisas dele. E o uso do select está errado. O que colocas como argumento do select será uma igualdade do nome da coluna onde tens o Id com o valor que pretendes. Coloquei como exemplo o nome da coluna Id, não sei qual o nome de tens na tua DataTable. int idDoRegisto = idDoRegistoQueEstouaConsultar foto1PictureBox.ImageLocation = DataSet.Tables["NomeTabela"].Select("Id = " + idDoRegisto).ToString(); Link to comment Share on other sites More sharing options...
Etiqueta Posted August 28, 2012 at 04:51 PM Author Report Share #473834 Posted August 28, 2012 at 04:51 PM esse id que pretendo é diferente quando o utilizador clica na barra do bindingNavigatorPositionItem. como é que sei qual é o id que ele está a ver? é aí a minha dificuldade. eu tenho um form com a picturebox e usse bindingNavigator. Quando o utilizador vê os restantes registos, a imagem dentro da picturebox tem k alterar consoante o caminho que está guardado na base de dados. Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com Link to comment Share on other sites More sharing options...
Etiqueta Posted August 29, 2012 at 02:23 PM Author Report Share #473976 Posted August 29, 2012 at 02:23 PM ainda não consegui resolver este problema 😕 Facebook: https://www.facebook.com/DeArteaZ Blog: http://arte-a-z.blogspot.com 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