Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Kadov

Filtro DATA utilizando SQL

Mensagens Recomendadas

Kadov

Olá, amigos! Sem delongas. Estou utilizando este código:

sql = "SELECT NOME2,DATA,OBRIGACAO FROM ARQUIVOS where NOME2 like @NOME2 and DATA between '@DATA1' and '@DATA2'";
cmd = new SqlCommand(sql, sqlconn);
cmd.Parameters.AddWithValue("@NOME2", "%" + codigo + "-" + lbl_codenome.Text + "%");
cmd.Parameters.AddWithValue("@DATA1", renomeardata(txt_filtrodata1.Text));
cmd.Parameters.AddWithValue("@DATA2", renomeardata(txt_filtrodata2.Text));
cmd.CommandType = CommandType.Text;

Consiste em pesquisar no db um determinado cadastro de arquivo. O meu problema está em filtrar a data. Ele simplesmente não filtra.

Observações:

1 - As textbox1 e 2 estão com máscara de data. Porém, eu configurei o TextMasFormat como "ExcludePromptAndLiterals". Por isso utilizo a função "renomeardata". (Essa função adiciona as barras "/" nas posições de data. Por exemplo: no textbox está 1012015 e após a função ficará 01/01/2015.)

2 - A funçao "renomeardata" converte o texto para "DateTime" e o retorna.

3 - O campo DATA do db foi criado como "date"

O que fazer? Obrigado.

Editado por apocsantos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Kadov

Caso alguém precise, fiz o seguinte:

1 - Criei as strings:

 public string data1; //Datas para serem filtradas
 public string data2; //Datas para serem filtradas

2 - No código exposto acima, ficaria desta forma:

					 sql = "SELECT NOME2,DATA,OBRIGACAO FROM ARQUIVOS where NOME2 like @NOME2 and DATA between @DATA1 and @DATA2 ORDER BY DATA";
					 cmd = new SqlCommand(sql, sqlconn);
					 cmd.Parameters.AddWithValue("@NOME2", "%" + codigo + "-" + lbl_codenome.Text + "%");
					 cmd.Parameters.AddWithValue("@DATA1", data1);
					 cmd.Parameters.AddWithValue("@DATA2", data2);
					 cmd.CommandType = CommandType.Text;

3 - Ao se digitar a data na textbox referente a cada uma, coloquei esse código na "ação" "TextBox_Leave" (Com as suas devidas medidas de segurança):

data1 = txt_filtrodata1.Text;
Convert.ToDateTime(data1);

(Já tentei colocar no código sql diretamente. Comigo não funcionou. Não sei o porque.)

E daí o código filtrou.

Abraços!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.