Jump to content
Sign in to follow this  
joaocarlos07

c# Fazer contagem de um campo de uma bd

Recommended Posts

joaocarlos07

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

Share this post


Link to post
Share on other sites
f-22

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

Share this post


Link to post
Share on other sites
PamkY

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.?

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.