格式化dd / MM / yyyy hh:mm:ss在一个日期选择器中c#

时间:2014-02-19 23:52:53

标签: c# format datapicker

我正在尝试在数据库中插入记录(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

关于如何更改它的任何想法?

1 个答案:

答案 0 :(得分:3)

永远不会这样做,因为它会导致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();