joaocarlos07 0 Posted March 17, 2011 Report Share Posted March 17, 2011 Boa tarde , estou a fazer uma aplicação em C# windows forms , e surgiu-me uma duvida , eu tenho uma tabela na base de dados que tem varios dados ou seja varias linhas de dados e eu cada linha atribuiu um valor 1,2,3,4 ... que é na coluna 'stop' , no c# eu fiz um codigo que quero que sempre que eu carregue num botão ele me acrescente um numero a minha variavel que assim ele passa-me para a proxima linha e mostra-me os proximos dados , eu fiz um select no form para o primeiro campo da bd e funciona , mas quando carrego no botao em vez de acrescentar 1 e ler o segundo valor vai-me para o ultimo. codigo do form : //select para stops liga.Open(); SQLiteCommand cmd = new SQLiteCommand ( " SELECT stop,rua,cod_postal,localidade,n_porta,ind_stop FROM " + textBlock1.Text + " where stop= '1' " , liga ) ; SQLiteDataReader dr; dr = cmd.ExecuteReader(); while (dr.Read()) { textBlock6.Text = Convert.ToString(dr["stop"]); textBlock2.Text = Convert.ToString(dr["rua"]); textBlock3.Text = Convert.ToString(dr["n_porta"]); textBlock4.Text = Convert.ToString(dr["cod_postal"]); textBlock5.Text = Convert.ToString(dr["localidade"]); textBlock7.Text = Convert.ToString(dr["ind_stop"]); } liga.Close(); } Codigo do botao : for (int i = 0; i < 200; i++) { resultado = i; liga.Open(); SQLiteCommand cmd = new SQLiteCommand(" SELECT stop,rua,cod_postal,localidade,n_porta,ind_stop FROM " + textBlock1.Text + " where stop= " + resultado + " ", liga); SQLiteDataReader dr; dr = cmd.ExecuteReader(); while (dr.Read()) { textBlock6.Text = Convert.ToString(dr["stop"]); textBlock2.Text = Convert.ToString(dr["rua"]); textBlock3.Text = Convert.ToString(dr["n_porta"]); textBlock4.Text = Convert.ToString(dr["cod_postal"]); textBlock5.Text = Convert.ToString(dr["localidade"]); textBlock7.Text = Convert.ToString(dr["ind_stop"]); } liga.Close(); Agradeço desde ja ajuda , um abraço Um Abraço,João Carlos Pinto Link to post Share on other sites
f-22 0 Posted March 18, 2011 Report Share Posted March 18, 2011 Mostra o FOR completo para te ajudarmos. Outra coisa, não se sei se é isso que estás a fazer, mas o SQL tem 1 opção para que ele acrescente 1 num automatico a 1 coluna, sempre que há 1 registo novo. Evitas ser tu a fazer isso. Tipicamente isto usa-se nas chaves primárias, define-se o identity a true semente 1, incremento 1. http://msdn.microsoft.com/en-us/library/ms186775.aspx Quanto ao codigo que exibiste... tenta substituir: ISTO -> SQLiteCommand cmd = new SQLiteCommand(" SELECT stop,rua,cod_postal,localidade,n_porta,ind_stop FROM " + textBlock1.Text + " where stop= " + resultado + " ", liga); POR ISTO -> SQLiteCommand cmd = new SQLiteCommand(" SELECT stop,rua,cod_postal,localidade,n_porta,ind_stop FROM " + textBlock1.Text + " where stop= " + i + " ", liga); a diferença está no where Link to post Share on other sites
PamkY 0 Posted March 21, 2011 Report Share Posted March 21, 2011 Não sei se já ouviste falar no: SELECT COUNT(campo) FROM tabela Isto conta o número de registos da tabela. Que provavelmente já o aplicaste para a variavel resultado.? Link to post Share on other sites
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