Bruno Escada Posted June 11, 2008 at 11:52 AM Report Share #190696 Posted June 11, 2008 at 11:52 AM boas pessoal mais uma vez tou com um problemas de o problema e o seguinte, tenho este codigo: private void Modelos_Eco_List_SelectedIndexChanged(object sender, EventArgs e) { if (Modelos_Eco_List.SelectedValue != null) { int idI; string id = Modelos_Eco_List.SelectedValue.ToString(); if (id != "") { try { idI = Int32.Parse(id); DataTable dtME = bdME.ModelosEcologicosSelect(idI); DataTable dtMw = bdM.ModelosSelect(idI); mod_eco = new Livraria.Modelos_Ecologicos(dtME); preencheModeloEcogico(); mod = new Livraria.Modelos(dtMw); preencheModelos(); } catch (Exception o) { MessageBox.Show(o.ToString()); } } } } quando na listbox eu faco o seleccionar de um elemento aparece-me uma menssagem com este erro: "A referencia de objecto nao foi definida como uma instancia de um objecto" e diz que o problema vem da linha com este codigo: DataTable dtMw = bdM.ModelosSelect(idI); alguem consegue me explicar qual é o problema? obrigado Link to comment Share on other sites More sharing options...
José Lopes Posted June 11, 2008 at 11:12 PM Report Share #190796 Posted June 11, 2008 at 11:12 PM ainda que não percebendo muito bem a sintaxe C#, arrisco a dizer que estás a usar uma variável sem lhe setares o valor. Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!! Link to comment Share on other sites More sharing options...
vitortomaz Posted June 11, 2008 at 11:27 PM Report Share #190801 Posted June 11, 2008 at 11:27 PM isso aparece na messageBox não é? o idI tem sempre um valor válido porque é um int, int é value type logo no mínimo tem 0. Essa excepção deve estar a vir do método bdM.ModelosSelect(idI); e é apanhada nesse try catch! faz debug passo a passo ao método e vê que valor está a null e que não deveria estar... se não tiveres a ver mete aqui o código do método... 😉 http://vitortomaz.blogspot.com/ Link to comment Share on other sites More sharing options...
Bruno Escada Posted June 12, 2008 at 09:37 AM Author Report Share #190831 Posted June 12, 2008 at 09:37 AM sim aparece... exatamente isso... o metedo bdM.ModelosSelect(idI) temeste codigo: public DataTable ModelosSelect(int modelo_id) { string sql = "select m.modelo_nome, m.modelo_num_portas, m.modelo_m_cilindros, m.modelo_m_cilindrada, m.modelo_m_bmax, m.modelo_m_potmax, m.modelo_vmax, m.modelo_travoesDiant, m.modelo_travoesTras, m.modelo_dp_compExt, m.modelo_dp_largExt, m.modelo_dp_altExt, m.modelo_dp_distEixos, m.modelo_img1, m.modelo_img2, m.modelo_img3, m.modelo_img4, m.modelo_img5, m.modelo_img6 from modelo m where m.modelo_id=" + modelo_id; return select(sql); } o select(sql) tem este codigo: public DataTable select(string s) //devolve O DataSet correspondente { //connBD.dr = null; return connBD.select(s); } o connBD.select(s) faz isto: public DataTable select(string s)// Para fazer Bindings DATASET { try { SQLiteCommand cmd = new SQLiteCommand(s, conn); dr = cmd.ExecuteReader(); } catch (Exception ex) { MessageBox.Show("Erro na ligação à Base de Dados!\r\n" + ex.ToString()); } return convertDataReaderToDataSet(dr); } será que tou a fazer algo errado? Link to comment Share on other sites More sharing options...
Bruno Escada Posted June 12, 2008 at 09:39 AM Author Report Share #190832 Posted June 12, 2008 at 09:39 AM ainda que não percebendo muito bem a sintaxe C#, arrisco a dizer que estás a usar uma variável sem lhe setares o valor. estou a setar valor com isto "bdM.ModelosSelect(idI)" acima tou explicando o que faz este metedo e os que dependem dele Link to comment Share on other sites More sharing options...
José Lopes Posted June 12, 2008 at 10:09 AM Report Share #190835 Posted June 12, 2008 at 10:09 AM já experimentaste correr o SQl que resulta da query "DataTable ModelosSelect(int modelo_id)" directamente numa janela de SQL.. só para despistar que o sql está a retornar resultados? Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!! Link to comment Share on other sites More sharing options...
Bruno Escada Posted June 12, 2008 at 10:35 AM Author Report Share #190840 Posted June 12, 2008 at 10:35 AM já experimentaste correr o SQl que resulta da query "DataTable ModelosSelect(int modelo_id)" directamente numa janela de SQL.. só para despistar que o sql está a retornar resultados? obrigada pelo conselho mas o problema era outro. esqueci-me de inicializar o bdM e depois pecisava de receber na query o modelo_id e nao o recebia. por isso me dar os erros que dava. Obrigada na mesma Link to comment Share on other sites More sharing options...
Bruno Escada Posted June 12, 2008 at 10:38 AM Author Report Share #190842 Posted June 12, 2008 at 10:38 AM Obrigada a todos que me ajudaram 👍 o Problema ja esta resolvido eu esqueci-me de incializar a datatable bdM e depois na query nao recebia o modelo_id. agora ja esta a funcionar. vou voltar ao meu Projecto final de curso 😛 vamos la ver se da para o 18 😉 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