Usuário com melhor resposta
Verificar quantas vezes um campo se repete no Banco

Pergunta
-
Gente, preciso de ajuda para desenvolver um método que busque no banco o código digitado e retorne o numero de vezes que ele se repetiu. Eu tenho um código que retorna apernas False ou true sobre ser encontrado no Banco, mas isso não resolve pra mim, pois no sistema bibliotecário q estou desenvolvendo o aluno pode locar no máximo dois livros, ou seja quando o id dele aparecer duas vezes na tabela locação, o mesmo n poderia mais alugar. A condição seria tipo:
if(ResultadoDeBusca>2){
Não pode locar, a menos q devolva os alugados}
else
realiza locação
-----------------
eu tenho esse código que usei para evitar duplicação, mas ele n me retorna o numero, apenas se existe ou n. Tem como eu adaptá-lo para a situação descrita acima??
conn = new MySqlConnection("server=localhost;database=biblioteca;uid=root;pwd=''"); conn.Open(); string sql = string.Empty; sql = "select idleitor from tbl_itemlocacao where idleitor=@idleitor"; MySqlCommand cm = new MySqlCommand(sql, conn); cm.Parameters.AddWithValue("@idleitor", txtcodigo.Text); cm.BeginExecuteNonQuery(); bool ver = cm.ExecuteReader().HasRows; if (ver == true) { //existe } //SENÃO NÃO ENTRA else //n existe
Respostas
-
Boa tarde.
Tente:
sql = "select COUNT(idleitor) from tbl_itemlocacao where idleitor=@idleitor"; MySqlCommand cm = new MySqlCommand(sql, conn); cm.Parameters.AddWithValue("@idleitor", txtcodigo.Text); int count = int.Parse(cm.ExecuteScalar().ToString());
Att., Rafael Simor
- Marcado como Resposta tt0022 domingo, 15 de novembro de 2015 18:33
-
Coloque um breaking point ou faça isso
MessageBox.Show(String.Format("Leitor possui {0} locação(es)!", count.ToString()));
no lugar do if/else para verificar qual valor está trazendo.
Att., Rafael Simor
-
Não é perturbação alguma.
Estou aqui finalizando meu TCC, pretendo ficar o dia todo programando, não custa nada ajudar os outros. :)
Mas voltando ao tópico...
Tente:
MessageBox.Show(String.Format("Leitor de ID {0} possui {1} locação(es)!", txtCodigo.Text, count.ToString()));
Para verificar qual ID ele está procurando.
Caso continue retornando 0, tente executar a Query diretamente no banco de dados (com e sem o COUNT) para verificar se realmente existem registros.
Att., Rafael Simor
- Marcado como Resposta tt0022 domingo, 15 de novembro de 2015 18:33
Todas as Respostas
-
Boa tarde.
Tente:
sql = "select COUNT(idleitor) from tbl_itemlocacao where idleitor=@idleitor"; MySqlCommand cm = new MySqlCommand(sql, conn); cm.Parameters.AddWithValue("@idleitor", txtcodigo.Text); int count = int.Parse(cm.ExecuteScalar().ToString());
Att., Rafael Simor
- Marcado como Resposta tt0022 domingo, 15 de novembro de 2015 18:33
-
conn = new MySqlConnection("server=localhost;database=biblioteca;uid=root;pwd=''"); conn.Open(); string sql = string.Empty; sql = "select COUNT(idleitor) from tbl_itemlocacao where idleitor=@idleitor"; MySqlCommand cm = new MySqlCommand(sql, conn); cm.Parameters.AddWithValue("@idleitor", txtcodigo.Text); int count = int.Parse(cm.ExecuteScalar().ToString()); if (count >2 ) { MessageBox.Show("já possui duas locacoes"); } else MessageBox.Show("ainda pode locar!");
seguindo as alterações, ficaria assim? n tá entrando no if, está indo direto para o else mesmo quando o leitor possui menos de dois registros -
Coloque um breaking point ou faça isso
MessageBox.Show(String.Format("Leitor possui {0} locação(es)!", count.ToString()));
no lugar do if/else para verificar qual valor está trazendo.
Att., Rafael Simor
-
-
Não é perturbação alguma.
Estou aqui finalizando meu TCC, pretendo ficar o dia todo programando, não custa nada ajudar os outros. :)
Mas voltando ao tópico...
Tente:
MessageBox.Show(String.Format("Leitor de ID {0} possui {1} locação(es)!", txtCodigo.Text, count.ToString()));
Para verificar qual ID ele está procurando.
Caso continue retornando 0, tente executar a Query diretamente no banco de dados (com e sem o COUNT) para verificar se realmente existem registros.
Att., Rafael Simor
- Marcado como Resposta tt0022 domingo, 15 de novembro de 2015 18:33
-
-
-
-
-
-