Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gente, estou com um problema que não estou conseguindo resolver, vou postar o código
public DataTable FindByData(double data, Usuario usu)
{
string query = Statements.SELECT_CLIENTE;
SqlParameter data_inicial = new SqlParameter("data_inicial", DateTime.Now.Date.AddDays(-data).ToString());
SqlParameter data_final = new SqlParameter("data_final", DateTime.Now.Date.ToString());
query += " WHERE data_inicio between CAST('@data_inicial' AS datetime) and CAST('@data_final' AS datetime)";
if (usu.Type == UserType.representante)
{
Representante rep = RepresentanteDAO.GetInstance().FindByIDUser(usu.ID);
query += " AND representante = " + rep.ID;
}
//query += "ORDER BY CAST(data_inicio AS datetime) DESC";
return SqlHelper.ExecuteDataset(Base.Config.getConnection(),
CommandType.Text,
query, data_inicial, data_final).Tables[0];
}Porque assim não está mostrando nenhum registro? Acho estranho porque esse mesmo código converti pra public string e dei um return pro query e apareceu a query neste formato SELECT ...... FROM ....... WHERE data_inicio between CAST('24/5/2009 00:00:00' AS datetime) and CAST('23/6/2009 00:00:00' AS datetime) e dai eu coloco pra testar esse mesmo código que recebo no software que faz conexão com o banco e aparece alguns registros.
**[update]Por incrivel que pareça meu erro está no tal do between, eu ainda não consegui uma solução pra isso, pois na aplicação com between não exibe nada e no software que eu uso pra conectar no mesmo banco coloco o mesmo código com between e recebe a galerinha. Tem alguma diferença nisso? como será que resolvo?**
[/update] :(
**[update]O problema está no CAST, mas tem lógica só na aplicação dar erro?**
[/update]Carregando comentários...