Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

[Resolvido] between com session

Recommended Posts

estou com o seguinte erro na instrução abaixo:

Erro: BC30201: Expression expected.

 

Dim cmd As New Data.SqlClient.SqlCommand("Select * from tabela where data_hora Between '"& Session("tox_data_inicial") & "'" and '" & Session("tox_data_final") & "'", conexao)

 

e preciso passar tbm a Session tipo

alguem pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou com o seguinte erro na instrução abaixo:

Erro: BC30201: Expression expected.

 

Dim cmd As New Data.SqlClient.SqlCommand("Select * from candidato_pos where data_hora Between '"& Session("tox_data_inicial") & "'" and '" & Session("tox_data_final") & "'", conexao)

 

e preciso passar tbm a Session tipo

alguem pode me ajudar

A string está sendo montada errada, retire o caracter aspas duplas " antes da palavra and.

 

Deverá ficar assim:

 

Dim cmd As New Data.SqlClient.SqlCommand("Select * from candidato_pos where data_hora Between '"& Session("tox_data_inicial") & "' and '" & Session("tox_data_final") & "'", conexao)

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou com o seguinte erro na instrução abaixo:

Erro: BC30201: Expression expected.

 

Dim cmd As New Data.SqlClient.SqlCommand("Select * from candidato_pos where data_hora Between '"& Session("tox_data_inicial") & "'" and '" & Session("tox_data_final") & "'", conexao)

 

e preciso passar tbm a Session tipo

alguem pode me ajudar

A string está sendo montada errada, retire o caracter aspas duplas " antes da palavra and.

 

Deverá ficar assim:

 

Dim cmd As New Data.SqlClient.SqlCommand("Select * from candidato_pos where data_hora Between '"& Session("tox_data_inicial") & "' and '" & Session("tox_data_final") & "'", conexao)

 

 

deve ter algo errado pq ele n pega a session, qdo eu debugo o codigo no cmd aparece a exatamente o codigo abaixo, me parece que ele n ta pegando:

CommandText = "Select nome, email, curriculo from candidato_pos where data_hora Between '' and ''"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é por que suas Session estão sem valor. Verifique se esta alimentando alguma Session com este nome mesmo.

 

Abraços...

falta de atencao minha tava passando o nome errado...rsrrsrs...desculpa

valeu pela ajuda obrigada

acrescentei mais uma session chamada tipo na busca com o operador and, só que se eu não preencho ela,

passa a não retornar nada dentro do meu arquivo. essa session é opcional, posso preencher ou não,

qual operador devo usar para atender essa condição

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize o OR.

 

Abraços...

eu tentei usar o or mais ai se eu digito os dois n funciona....

e outra aconteceu outra coisa estranha, qdo testei no banco dependendo da ordem q eu coloco o dois campos no or, ele me traz um resultado diferente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste aqui pra dar uma olhada.

 

Abraços...

Dim cmd As New Data.SqlClient.SqlCommand("Select tabela2.al_codigo, tabela2.tipo, tabela1.nome, tabela1.local1,tabela1.bairro, tabela1.cidade, tabela1.estado, tabela1.CEP, tabela1.fone, tabela1.fone1, tabela2.nreg, tabela2.valorpar, tabela2.valorpar-valordes-valorabat as Líquido, tabela2.dtvcto, tabela2.codpgto

FROM tabela1 INNER JOIN tabela2 ON tabela1.codigo = tabela2.al_codigo

where tabela2.valorpar-valordes-valorabat > 0

and dtpgto is null

and dtvcto < GETDATE()

and codpgto='BA'

and tipo = '" & Session("tipo") & "'

or dtvcto Between '" & Session("dt_inicial") & "' and '" & Session("dt_final") & "' order by nome", conexao)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu não sei VB.NET entendo bem de C#.

 

mas você pode fazer fazer um if e verificar se o session tipo é diferente de null se for ai você aplica a condição no seu select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

em C# seria:

 

if(Session["tipo"].ToString != "")
{
Data.SqlClient.SqlCommand = new Data.SqlClient.SqlCommand("Select tabela2.al_codigo, tabela2.tipo, tabela1.nome, tabela1.local1,tabela1.bairro, tabela1.cidade, tabela1.estado, tabela1.CEP, tabela1.fone, tabela1.fone1, tabela2.nreg, tabela2.valorpar, tabela2.valorpar-valordes-valorabat as Líquido, tabela2.dtvcto, tabela2.codpgto
FROM tabela1 INNER JOIN tabela2 ON tabela1.codigo = tabela2.al_codigo
where tabela2.valorpar-valordes-valorabat > 0
and dtpgto is null
and dtvcto < GETDATE()
and codpgto='BA'
and tipo = '" & Session("tipo") & "'
or dtvcto Between '" & Session("dt_inicial") & "' and '" & Session("dt_final") & "' order by nome", conexao)
}
else
{
Data.SqlClient.SqlCommand = new Data.SqlClient.SqlCommand("Select tabela2.al_codigo, tabela2.tipo, tabela1.nome, tabela1.local1,tabela1.bairro, tabela1.cidade, tabela1.estado, tabela1.CEP, tabela1.fone, tabela1.fone1, tabela2.nreg, tabela2.valorpar, tabela2.valorpar-valordes-valorabat as Líquido, tabela2.dtvcto, tabela2.codpgto
FROM tabela1 INNER JOIN tabela2 ON tabela1.codigo = tabela2.al_codigo
where tabela2.valorpar-valordes-valorabat > 0
and dtpgto is null
and dtvcto < GETDATE()
and codpgto='BA'
or dtvcto Between '" & Session("dt_inicial") & "' and '" & Session("dt_final") & "' order by nome", conexao)
}
no else eu removo o tipo = '" & Session("tipo") & "'

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa condição será feita na programação antes de passar pro sql.

Na verdarde eu sempre trabalhei com procedure.

Mas pense assim, quebre seu select em strings e monte eles jutando de acordo com a condições

ex:

string cmd = "Select tabela2.al_codigo, tabela2.tipo, tabela1.nome, tabela1.local1,tabela1.bairro, tabela1.cidade, tabela1.estado, tabela1.CEP, tabela1.fone, tabela1.fone1, tabela2.nreg, tabela2.valorpar, tabela2.valorpar-valordes-valorabat as Líquido, tabela2.dtvcto, tabela2.codpgto
FROM tabela1 INNER JOIN tabela2 ON tabela1.codigo = tabela2.al_codigo"

if(Session["tipo"].ToString != "")
{
 cmd = cmd + "where tabela2.valorpar-valordes-valorabat > 0 and dtpgto is null and dtvcto < GETDATE() and codpgto='BA' and tipo = '" & Session("tipo") & "' or dtvcto Between '" & Session("dt_inicial") & "' and '" & Session("dt_final") & "' order by nome";
}
else
{
 cmd = cmd + "where tabela2.valorpar-valordes-valorabat > 0 and dtpgto is null and dtvcto < GETDATE() and codpgto='BA' or dtvcto Between '" & Session("dt_inicial") & "' and '" & Session("dt_final") & "' order by nome";";
}

Data.SqlClient.SqlCommand = new Data.SqlClient.SqlCommand(cmd, conexao)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.