【发布时间】:2019-10-21 07:29:51
【问题描述】:
一个用于管理我们库存的小型应用程序,其中有一个选项可以编辑取出的数量以及它去了哪个部门。为了获得正确的值,使用了一个包含取出日期的 SELECT:
CAST(date AS smalldatetime) = '" + Convert.ToDateTime(date_value).ToString("dd-MMM-yy HH:mm:ss") + "'
应用程序运行在 4 台不同用户的电脑上。其中 3 个工作正常,但第 4 个抛出以下错误。看到它只影响 25% 的用户会导致这种错误的原因是什么。
(所有测试都使用相同的记录)
【问题讨论】:
-
Windows 文化/语言设置。
-
停止将数据作为 字符串 传递给 SQL Server。这真是个坏习惯。将其 as 传递给 DateTime(通过参数),您可以避免在数据类型之间不断转换。
-
@UweKeim 你是对的。出于某种原因,这台电脑是部门中唯一一台具有本地设置而不是美国的电脑
-
@A.bakker 这就是为什么你不应该使用字符串连接来传递值。使用参数化查询。您也不必解析/格式化任何内容
标签: c# sql sql-server winforms