Jump to content
Sign in to follow this  
joaocarlos07

C# comando Count com condição

Recommended Posts

joaocarlos07

Boa noite , queria pedir ajuda num pequeno problema que me surgiu . é o seguinte eu queria fazer uma contagem de dados em que ele so em contava os dados com uma determinada condicao ou seja eu dizia Porto e ele contava-me quantos Porto havia .

Eu fiz o seguinte codigo mas esta a dar erro :

liga.Open();
            SqlCeCommand cmd = liga.CreateCommand();
            SqlCeCommand conta = liga.CreateCommand();
            conta.CommandText = "select count (tour) from moradas Where tour =  " + label4.Text + " ";
            int quant = Convert.ToInt32(Convert.ToString(conta.ExecuteScalar()));
            label5.Text = Convert.ToString(quant);

Desde ja o meu obrigado pela ajuda


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Qual erro?

Se tentares assim não dá?

conta.CommandText = "select count (tour) from moradas Where tour =  '" + label4.Text + "' ";


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Boa noite ,

Da-me o seguinte erro ' There was an error parsing the query. [ Token line number = 1,Token line offset = 16,Token in error = FROM ] '

Os Campos da bd estão vazios ele devia-me apresentar o numero 0 certo ?

Obrigado


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Essa query não está correcta, qual é a estrutura da tabela?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

A tabela é a seguinte :

Nome da tabela : moradas

id int

stop int

rua nvarchar

codpostal nvarchar

localidade nvarchar

nporta nvarchar

indstop nvarchar

tour nvarchar

Obrigado pela ajuda


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Tenta assim

conta.CommandText = "SELECT COUNT([tour]) AS TOTAL FROM [moradas] Where [tour] =  '" + label4.Text + "' ";


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Sim resulto , muito obrigado .

Pode me explicar qual foi a diferença para entender e aprender ?


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Já agora o int na BD suporta quantos digitos ?

Noutro form esta-me a dar este erro ' Expression evaluation caused an overflow. [ Name of function (if known) =  ] '

é por ter um numero muito grande correcto ?


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Sim resulto , muito obrigado .

Pode me explicar qual foi a diferença para entender e aprender ?

A diferença é que na tua tabela deves ter um campo com o mesmo nome de uma função interna do SQL, dai colocar os parênteses rectos.

Já agora o int na BD suporta quantos digitos ?

Noutro form esta-me a dar este erro ' Expression evaluation caused an overflow. [ Name of function (if known) =  ] '

é por ter um numero muito grande correcto ?

Suporta muitos, mas em CE não sei quantos... Mostra o código dessa form para ver


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Ok obrigado pela ajuda ,

O codigo é este e acho que me esta a dar o erro no codigo de barras pois sao alguns digitos,


//insert
            SqlCeCommand cmd = new SqlCeCommand("Insert into produtos(id,codbarras,nome,preco,categoria) values ('" + resultado.ToString() + "','" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "', '" + comboBox1.Text + "' )", liga);
            cmd.ExecuteNonQuery();
            liga.Close();
            MessageBox.Show("Registo efectuado com sucesso");


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Quando um campo é do tipo numero, que é o caso, não deves colocar as plicas


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Ok vou alterar e testar e ja digo alguma coisa


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
joaocarlos07

Ja testei e continua a dar o mesmo erro , so da com um codigo de barras curto para ai de 10 digitos . Mas tambem esse nao é um problema grave mas queria resolve-lo

Uma braço


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Coloca os parênteses rectos nos campos e nome da tabela


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Não percebo porque agora esta-me a dar erro em quase todos os selects desde que eu acrescentei os "where"


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Usa parâmetros ;)

As querys que estás a tentar executar já forma testadas?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Parametros como assim ?

Tipo eu antes tinha 2 bds uma para os campos em geral (login , produtos etc) e outra para as moradas de cada tour e cada tour era uma tabela , so que analisando bem tenho que por tudo numa bd entao criei a tabela moradas e a tabela tour e nos meus select tenho que por o campo where , antes tudo me funcionava bem apartir do momento que acrescentei o where algumas nao me dao


Um Abraço,João Carlos Pinto

Share this post


Link to post
Share on other sites
Caça

Não faz sentido estar a discutir a mesma duvida em dois tópicos, decide-te


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
joaocarlos07

Encerramos o assunto aqui , obrigado e abraço


Um Abraço,João Carlos Pinto

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.