Usuário com melhor resposta
Conversão de data

Pergunta
-
Bom dia a todos,Tenho um aplicativo web (ASPX e C#) no qual quero fazer uma inclusão em minha base de dados e no meu caso a data não é altera apenas apresentada em formato de label para o suário.Quando exibida ara o usuário está no formato correto pt-br (dd/MM/yyyy) , porém na hora de incluir essa data na minha tabela, a data está sendo incluída no formato "americano" (MM/dd/yyyy) .Como faço para que a inclusão no banco tmb seja feita no formato pt-br.Abaixo meu código.Code Block
SqlConnection conn = new SqlConnection("Data Source=INTRANETVARE JO; Initial Catalog=Resolve; Persist Security Info=True; User ID=sa; PWD=gecarrj");
SqlCommand cmd = new SqlCommand("INSERT INTO transacoes (GerenteID , AssuntoID , Tipo , Data) VALUES ('" + this.ddlGerente. SelectedValue + "' , '" + this.ddlAssunto. SelectedValue + "' , '" + this.rblTipo.SelectedVa lue + "' , '" + this.lblData.Text + "')", conn);
conn.Open();
cmd.ExecuteNonQuery ();
conn.Close() ;
Minha label está na page_load assim:
Code BlocklblData.Text = DateTime.Now.ToString("dd/MM/yyyy");Agradeço desde já a juda de todos.
Att
WallCarlos
Respostas
-
Daniel,
boa tarde, não dei o GetDate(), pois queria que fosse exibido em um label para o usuário e aproveitei dessa forma.
Agradeço mais uma vez a ajuda.....consegui resolver e a solução foi a seguinte:
Para que o sql server reconheça a data no formato dd/MM/yyyy adicionei no inicio da string sql “Set DateFormat DMY;”
Ficando assim:
Code BlockSqlCommand cmd = new SqlCommand("Set DateFormat DMY;INSERT INTO transacoes (GerenteID , AssuntoID , Tipo , Data) VALUES ('" + this.ddlGerente. SelectedValue + "' , '" + this.ddlAssunto. SelectedValue + "' , '" + this.rblTipo.SelectedVa lue + "' , '" + this.lblData.Text + "')", conn);
Abs e mais uma vez vlw a ajuda.
Att
Todas as Respostas
-
-
Daniel,
boa tarde, não dei o GetDate(), pois queria que fosse exibido em um label para o usuário e aproveitei dessa forma.
Agradeço mais uma vez a ajuda.....consegui resolver e a solução foi a seguinte:
Para que o sql server reconheça a data no formato dd/MM/yyyy adicionei no inicio da string sql “Set DateFormat DMY;”
Ficando assim:
Code BlockSqlCommand cmd = new SqlCommand("Set DateFormat DMY;INSERT INTO transacoes (GerenteID , AssuntoID , Tipo , Data) VALUES ('" + this.ddlGerente. SelectedValue + "' , '" + this.ddlAssunto. SelectedValue + "' , '" + this.rblTipo.SelectedVa lue + "' , '" + this.lblData.Text + "')", conn);
Abs e mais uma vez vlw a ajuda.
Att
-
Aproveitando o post, gostaria de saber como formato data no meu gridview
fiz um insert usando C#, e fiz uma consulta e aparece embaixo no GridView, porem no campo data retorna dd/mm/aaaa 00:00:00
como faço para ele ignorar esse formato usando horario, quero apenas o dia mesmo...
-
Considero que você queira apenas mostra a data ignorando o horário.
Basta definir a propriedade DataFormatString do seu controle GrivView com o valorCode Snippet"{0:dd/MM/yyyy}"
Code SnippetDataFormatString="{0:dd/MM/yyyy}"
[]'s -
Arley Marciel wrote: Considero que você queira apenas mostra a data ignorando o horário.
Basta definir a propriedade DataFormatString do seu controle GrivView com o valorCode Snippet"{0:dd/MM/yyyy}"
Code SnippetDataFormatString="{0:dd/MM/yyyy}"
[]'sObrigado, resolveu "em parte", quando abre o GridView ele fica nesse formato quu eu defini (sem horas), porem quando eu clico no botao editar do gridview, os campos se expandem para q eu possa fazer a ediçao, e as horas aparecem novaemente... tem como corrigir isso?
-
-
-
Cara, sempre usei pra testes 01/01/2000 e nunca tinha me atentado que estava sendo salvo mm/dd/yyyy
quando tento salvar 15/02/2000 da erro pois ele considera mm/dd/yyyy , estou usando DAAB para acesso aos dados e fazendo tudo por Stored Procedure
ALTER PROCEDURE wpInsereFuncionario
( @Matricula char(9), @Nome varchar(50),
@Status char(1), @Data datetime )
AS
Set DateFormat DMY;INSERT INTO Gestor (
Matricula, Nome,
Data, Status )
VALUES
( @Matricula, @Nome,
@Data, 'S' )
Esse é meu codigo na pagina
SqlHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["ABCDE"].ConnectionString,
//CommandType.Text,("Set DateFormat DMY;INSERT INTO Funcionario (Nome , Matricula ,Data) VALUES ('" + this.txtMatricula.Text + "' , '" + this.txtNome.Text + "' , '" + this.txtData.Text + "')"));
CommandType.StoredProcedure,
"wpInsereFuncionario",
new SqlParameter("@Nome", txtNome.Text),
new SqlParameter("@Matricula", txtMatricula.Text),
new SqlParameter("@Data", (txtData.Text),
Como podem notar, ha uma linha de codigo comentada nesse trecho de codigo, que esta funcionando normalmente, esta mandando para o banco no formato dd/mm/yyyy
O problema ocorre quando estou usando a Stored Procedure para fazer a inclusao, da erro no Visual Studio! tipo aquela parte que foi usada pelo WallCarlos nos post acima, "Set DateFormat DMY;" antes do insert da erro no visual studio!! alguem pode dar um help???? -
-
Daniel Dac wrote: Qual o erro?
Puts! detalhei quase tudo e esqueci esse detalhe... o da um erro no visual studio assim:
Error converting data type nvarchar to datetime.
via CommandType.text = 100%
CommandType.Text,("Set DateFormat DMY;INSERT INTO Funcionario (Nome , Matricula ,Data) VALUES ('" + this.txtMatricula.Text + "' , '" + this.txtNome.Text + "' , '" + this.txtData.Text + "')"));
via CommandType.StoredProcedure da esse erro acima
CommandType.StoredProcedure,
"wpInsereFuncionario",
new SqlParameter("@Nome", txtNome.Text),
new SqlParameter("@Matricula", txtMatricula.Text),
new SqlParameter("@Data", (txtData.Text), <=== a instruçao Set DateFormat DMY, ja esta na SP, sera que devo adapata-la ao passar o parametro data novamente? -
-
Daniel Dac wrote: O problema dessa linha provavelmente esta no valor em que vc esta passando como parametro que o Sql esta interpretando como uma string(nvarchar) e não Datetime como deve ser o campo q vc esta jogando o valor.
bem... devia ser isso mesmo, mas consegui resolver, talvez pelo uso das barras dd/mm/yyyy ele tivesse considerando string na hora de mandar para o banco, sei la!
CommandType.StoredProcedure,
"wpInsereFuncionario",
new SqlParameter("@Nome", txtNome.Text),
new SqlParameter("@Matricula", txtMatricula.Text),
new SqlParameter("@Data", Convert.ToDateTime(txtData.Text) <=== isso corrigiu meu problema, mandou pro banco a data e ja corrigiu outro problema que estava batendo a cabeça faz tempo, ele tava salvando como MM/dd/yyyy e agora esta salvando beleza no formato dd/MM/yyyy. Vlw ai pela ajuda! =) Ponto