1

我正在尝试在数据库(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

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

4

1 回答 1

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();
于 2014-02-19T23:54:18.183 回答