Jump to content

c# Fazer contagem de um campo de uma bd


joaocarlos07

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

Link to post
Share on other sites

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

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
×
×
  • 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.