当我想将日期作为参数传递给 SQL 语句时,我总是遇到问题,我尝试使用以前的变量 aConvert
或 aCast
但我永远找不到正确的方法。
我在 C# 中有以下语句,其中我正在构建一个更新语句,并且我正在发送 3 个参数,其中两个是数值,最后一个是有问题的日期。
UpdateStatement = "UPDATE Productos SET PrecioUnitario = " + nPrecioUnitario.ToString() + ", FactorVenta = " + nFactorVenta.ToString() + ", PrecioUnitarioFecha = CONVERT(DateTime,'" + dFecha.ToString() + "',103) WHERE ProductoId = " + nProductoId;
我得到的错误如下:
Conversion failed when converting datetime from character string.
这不是格式问题,因为我们是 5 月 18 日,日期即将到来 05/18/2016 12:00:00。首先我试图让它保持不转换,然后我把它放在引号中并添加转换,我不知道最后是否有任何正确的方法可以让日期直接通过并且没有这些问题。
有任何想法吗?
您应该始终使用参数,例如:
有更多上下文/更好的例子:
...是的:
您不应该绑定字符串中的值,而是将参数分配给命令对象
结构应该类似于
在这种情况下,两者都被理解
dFecha
并且nFactorVenta
属于类型DateTime