【问题标题】:Format dd/MM/yyy hh:mm:ss in a datapicker c#在日期选择器 c# 中格式化 dd/MM/yyyy hh:mm:ss
【发布时间】:2014-02-19 23:52:52
【问题描述】:

我正在尝试在数据库 (Sql Server 2008) 中插入一条记录,我需要以 dd/MM/yyyy hh:mm:ss 格式插入我的日期。

我正在尝试格式化数据选择器的值。这是我的代码:

public Manas()
{
    InitializeComponent();
    datep.CustomFormat = "dd/MM/yyyy hh:mm:ss";
    datep.Format = DateTimePickerFormat.Custom;
}            

sbQuery1S.Append("UPDATE AC SET date= '" + datep.Value.ToString() + "' WHERE NTIVO='" + txtct.Text.ToString() + "' AND NUMA ='" + txia.Text.ToString() + "' AND NUIPO='" + txtpo.Text.ToString() + "' AND SUACT='" + txtSNum.Text.ToString() + "'");
                cmd1S.CommandText = sbQuery1S.ToString();
                cmd1S.Connection = conn;
                cmd1S.ExecuteNonQuery();

问题是数据选择器的格式是dd//MM/yy hh:mm:ss

知道如何更改它吗?

【问题讨论】:

  • 您已经在CustomFormat.. 中清楚地设置了它.. 更改它.. 更改该字符串。
  • "我需要以 dd/MM/yyyy hh:mm:ss 格式插入我的日期" 嗯,为什么?为什么要将日期/时间值作为文本保存到数据库中?为什么不使用专门用于此目的的类型,即 datetime 或 datetime2?
  • 我需要 dd/MM/yyy hh:mm:ss 它给了我 dd/MM/yy hh:mm:ss ...注意“yy”@Simon Whitehead
  • @jmcilhinney 错了吗?这是一个“日期时间”
  • 将日期/时间值存储为文本是否错误?绝对地。您是否将数字存储为文本?如果不是,那么为什么要将日期/时间存储为文本?

标签: c# format datapicker


【解决方案1】:

永远不要这样做,因为它会导致 SQL 注入漏洞。你必须使用参数

cmd1S.CommandText = "UPDATE AC SET date = @p1 WHERE NTIVO = @p2 AND NUMA = @p3 AND NUIPO=@p4 AND SUACT=@p5";
var p1 = cmd1S.CreateParameter();
p1.Name = "p1";
p1.Value =  DateTime.ParseExact(datep.Value, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture)
cmd1S.Parameters.Add(p1);
//other parameters
cmd1S.Connection = conn;
cmd1S.ExecuteNonQuery();

【讨论】:

  • 我做到了,但现在显示error en una parte del formato de fecha expression (if known) =
猜你喜欢
  • 2015-11-03
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-08
  • 2020-10-23
  • 2015-09-02
相关资源
最近更新 更多