Jump to content
rmlm

Número de linhas retornadas por uma Query

Recommended Posts

rmlm

Como o próprio titulo indica, como é que eu consigo obter o número de linhas retornadas por uma consulta no MySql?

Share this post


Link to post
Share on other sites
rmlm

Já tentei isto mas está-me sempre a dar 7... não percebo o erro

            String consulta = "SELECT * FROM membros";

            coneccao.Open();
            comando.CommandText = consulta;
            MySqlDataReader dr = comando.ExecuteReader();
            int n_linhas = 0;
            n_linhas = dr.FieldCount;
            aviso_entrar.Text = "Foram encontrados "+ n_linhas +" membros";
            coneccao.Close();

Share this post


Link to post
Share on other sites
rmlm

Já resolvi...

Fica aqui a solução para quem precisar:

            coneccao.Open();
            
            comando.CommandText = consulta;
            DataTable dt = new DataTable();
            dt.Load(comando.ExecuteReader());
            int n_linhas = dt.Rows.Count;
            aviso_entrar.Text = "Existem "+n_linhas+" membros!";
           
            coneccao.Close();

Share this post


Link to post
Share on other sites
f-22

Boas,

Podes usar o seguinte comando em SQL:

SELECT COUNT(*) FROM membros

Depois em C#:

int numLinhas = Convert.ToInt32(comando.ExecuteScalar());

É mais rápido. Da forma que tens, funciona, mas estás a trazer os resultados todos para o código, mas na verdade só precisas de 1 numero!

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

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