Usuário com melhor resposta
Como se formata a Data para o formato dd-mm-yyyy retornando de um Data Reader

Pergunta
-
Olá pessoal tenho o seguinte codigo que recebe os campos de um data reader
ImgGde.AlternateText += dr["Titulo"].ToString() + " !!!"; lblTitulo.Text += dr["Titulo"].ToString(); lblDescricao.Text += dr["Descricao"].ToString(); formatadata = string.Format("{0:d/MM/yyyy}", dr["DataNoticia"].ToString()); lblData.Text += formatadata; lblHorario.Text += string.Format("{0:HH:mm}",dr["HorarioNoticia"].ToString()); hplUrlFonte.NavigateUrl += dr["UrlFonte"].ToString(); hplUrlFonte.Text += dr["UrlFonte"].ToString();
Acontece que ao executar o asp.net website e mesmo eu usando o string.format acima ele esta me retornando sempre na pagina
dd/mm/yyyy 00:00:00 (ja que o reader do campo dele retorna de um campo tipo DateTime)
O que eu não estou entendendo é porque ele não está formatando como solicitado acima apenas para mostrar a data dd/mm/yyyy não incluindo os dados de hora o que não está ocorrendo
Estou trabalhando em csharp asp.net website - .NetFramework 3.5 .NET num VisualStudioPro 2008, base de dados SqlServer 2008R2
Fico no aguardo a quem puder me ajudar e desde ja agradeço
LADEF
Respostas
-
luiz vc pode fazer assim
formatdata = string.format("{0:dd/MM/yyyy}",dr["datanoticia"].toString().substring(0,10));
ou então no seu select vc pode fazer assim
select convert(varchar(10),datanoticia,103) as datanoticia
e ai não precisa usar o string.format
Junior
- Editado Junior_luiz quarta-feira, 28 de novembro de 2012 16:57
- Marcado como Resposta LuizIta segunda-feira, 10 de dezembro de 2012 04:14
Todas as Respostas
-
luiz vc pode fazer assim
formatdata = string.format("{0:dd/MM/yyyy}",dr["datanoticia"].toString().substring(0,10));
ou então no seu select vc pode fazer assim
select convert(varchar(10),datanoticia,103) as datanoticia
e ai não precisa usar o string.format
Junior
- Editado Junior_luiz quarta-feira, 28 de novembro de 2012 16:57
- Marcado como Resposta LuizIta segunda-feira, 10 de dezembro de 2012 04:14
-
Apenas remova o .toString()
Para isso aqui funcionar
string.Format("{0:d/MM/yyyy}"
Você tem que passar uma data, e não uma string. Por isso você deve remover o .toString(), ta pegando uma data e convertendo pra string antes de formatar ela.
- Sugerido como Resposta Seilor Bonancio JuniorModerator quarta-feira, 5 de dezembro de 2012 12:13
-
-
faz assim
datetime hoje = datetime.now;
string dia = hoje.substring(0,2);
string mes = hoje.substring(3,2);
string ano = hoje.substring(6,4);
string dataconvert = ano + "-" + mes + "-" + dia;
seu select ficaria
select data from tabela where campo = dataconvert
Junior
-
-
ImgGde.AlternateText += dr["Titulo"].ToString() + " !!!"; lblTitulo.Text += dr["Titulo"].ToString(); lblDescricao.Text += dr["Descricao"].ToString(); formatadata = string.Format("{0:dd/MM/yyyy}", dr["DataNoticia"]); lblData.Text += formatadata; lblHorario.Text += string.Format("{0:HH:mm}",dr["HorarioNoticia"]); hplUrlFonte.NavigateUrl += dr["UrlFonte"].ToString(); hplUrlFonte.Text += dr["UrlFonte"].ToString();
Aqui está a versão certa. Só removi o .ToString()