Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Kadov

Filtro DATA utilizando SQL

Recommended Posts

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.

Edited by apocsantos

Share this post


Link to post
Share on other 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!

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

×

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.