Consulta por Datas
23/12/2011
0
Estou com problema para fazer consulta por datas, fiz o seguinte metodo porém não está correto...
Data de Parametro do Tipo Datetime: 07/10/2011 - Inicio e Fim
Camada DAL:
public SqlDataReader consultaVendas(DateTime Dataini, DateTime Datafim) { SqlConnection cn = new SqlConnection(); VendasInformation venda = new VendasInformation(); try { cn.ConnectionString = Dados.StringDeConexao; SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.Text; cmd.CommandText = (SELECT * FROM Vendas WHERE DATA >= CONVERT(Varchar(10), @Dataini, 111) AND DATA <= CONVERT(Varchar(10), @Datafim, 111); cmd.Parameters.AddWithValue(@Dataini, venda.Data); cmd.Parameters.AddWithValue(@Datafim, venda.Data); cn.Open(); SqlDataReader Leitor; Leitor = cmd.ExecuteReader(); while (Leitor.Read()) { venda.Codigo = Convert.ToInt32(Leitor[CODIGO]); venda.Data = Convert.ToDateTime(Leitor[DATA]); venda.Quantidade = Convert.ToInt32(Leitor[QUANTIDADE]); venda.Faturado = Convert.ToBoolean(Leitor[FATURADO]); venda.Codigocliente = Convert.ToInt32(Leitor[CODIGOCLIENTE]); venda.Codigoproduto = Convert.ToInt32(Leitor[CODIGOPRODUTO]); } return Leitor; } catch (SqlException ERR) { throw new Exception(ERRO NA CONEXÃO + ERR.Message); } finally { cn.Close(); } } }
Camada BLL:
Camada BLL public SqlDataReader consultaVendas(DateTime Dataini, DateTime Datafim) { return ObjDAL.consultaVendas(Dataini, Datafim); }
Camada UI:
VendasInformation venda = new VendasInformation(); DateTime Dataini = DateTime.Parse(TxtDataini.Text, dd/MM/yyyy); DateTime Datafim = DateTime.Parse(TxtDatafim.Text, dd/MM/yyyy); VendasBLL dados = new VendasBLL(); dados.consultaVendas(Dataini, Datafim); TxtCodigo.Text = Convert.ToString(venda.Codigo); TxtQuantidade.Text = Convert.ToString(venda.Quantidade); TxtFaturado.Text = Convert.ToString(venda.Faturado); TxtCocCliente.Text = Convert.ToString(venda.Codigocliente); TxtCodProduto.Text = Convert.ToString(venda.Codigoproduto); TxtData.Text = Convert.ToString(venda.Data);
pessoal me ajuda por favor
Alan Miranda
Posts
23/12/2011
Inovação Ltda
(SELECT * FROM Vendas WHERE DATA between CONVERT(Varchar(10), @Dataini, 103) AND CONVERT(Varchar(10), @Datafim, 103));
T++
23/12/2011
Alan Miranda
Att
23/12/2011
Inovação Ltda
T++
23/12/2011
Inovação Ltda
CONVERT(CHAR(10),Data,103) .
T++
27/12/2011
Flavia Santos
public SqlDataReader consultaVendas(DateTime Dataini, DateTime Datafim)
{
SqlConnection cn = new SqlConnection();
VendasInformation venda = new VendasInformation();
try
{
cn.ConnectionString = Dados.StringDeConexao;
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = (SELECT * FROM Vendas WHERE DATA >= CONVERT(Varchar(10), @Dataini, 111) AND DATA <= CONVERT(Varchar(10), @Datafim, 111);
cmd.Parameters.AddWithValue(@Dataini, venda.Data);
cmd.Parameters.AddWithValue(@Datafim, venda.Data);
Troque as duas ultimas linhas a cima por:
cmd.Parameters.AddWithValue(@Dataini, Dataini);
cmd.Parameters.AddWithValue(@Datafim, Datafim);
Você também não precisa instanciar a sua classe venda, então no inicio do metodo SqlDataReader, você pode excluir a linha:
VendasInformation venda = new VendasInformation();
27/12/2011
Flavia Santos
Você está passando as datas vazias. Olhe o método SqldataReader da sua camada DAL
public SqlDataReader consultaVendas(DateTime Dataini, DateTime Datafim)
{
SqlConnection cn = new SqlConnection();
VendasInformation venda = new VendasInformation();
try
{
cn.ConnectionString = Dados.StringDeConexao;
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = (SELECT * FROM Vendas WHERE DATA >= CONVERT(Varchar(10), @Dataini, 111) AND DATA <= CONVERT(Varchar(10), @Datafim, 111);
cmd.Parameters.AddWithValue(@Dataini, venda.Data);
cmd.Parameters.AddWithValue(@Datafim, venda.Data);
Troque as duas ultimas linhas a cima por:
cmd.Parameters.AddWithValue(@Dataini, Dataini);
cmd.Parameters.AddWithValue(@Datafim, Datafim);
Você também não precisa instanciar a sua classe venda, então no inicio do metodo SqlDataReader, você pode excluir a linha:
VendasInformation venda = new VendasInformation();
27/12/2011
Alan Miranda
public SqlDataReader consultaVendas(DateTime Dataini, DateTime Datafim) { SqlConnection cn = new SqlConnection(); VendasInformation venda = new VendasInformation(); venda.Data = Dataini; venda.Data = Datafim; try { cn.ConnectionString = Dados.StringDeConexao; SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; cmd.CommandType = CommandType.Text; cmd.CommandText = (SELECT * FROM Vendas WHERE DATA between CONVERT(Varchar(10), @Dataini, 103) AND CONVERT(Varchar(10), @Datafim, 103)); cmd.Parameters.AddWithValue(@Dataini, venda.Data); cmd.Parameters.AddWithValue(@Datafim, venda.Data); cn.Open(); SqlDataReader Leitor; Leitor = cmd.ExecuteReader(); while (Leitor.Read()) { venda.Codigo = Convert.ToInt32(Leitor[CODIGO]); venda.Data = Convert.ToDateTime(Leitor[DATA]); venda.Quantidade = Convert.ToInt32(Leitor[QUANTIDADE]); venda.Faturado = Convert.ToBoolean(Leitor[FATURADO]); venda.Codigocliente = Convert.ToInt32(Leitor[CODIGOCLIENTE]); venda.Codigoproduto = Convert.ToInt32(Leitor[CODIGOPRODUTO]); } return Leitor; } catch (SqlException ERR) { throw new Exception(ERRO NA CONEXÃO + ERR.Message); } finally { cn.Close(); } }
Tenho somente três informações no banco SQL:
2011-11-07 19:54:09.657
2011-11-10 22:30:23.493
2011-11-10 22:32:26.430
Estou passado o parametro de Data assim DD/MM/YYYY - 07/11/2011 - Dataini e Datafim
Me ajudem por favor pessoal.
Vlw pela ajuda
Clique aqui para fazer login e interagir na Comunidade :)