我正在尝试在数据库中插入记录(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
关于如何更改它的任何想法?
答案 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();