那里。 我正在开发一个简单的界面,得到SQLServer的数据和我使用的功能DateTime.ToString(String)
DateTime.ToString(格式)不同PC上的意外行为
实际的代码DP.Value.ToString("yyyy-MM-dd HH:mm:00")
, 其中DP是一个DateTimePicker控件。
所有工作正常,而我测试它在我自己的笔记本电脑上。但是,当我将编译后的代码移到另一台电脑上时,结果会有所不同。 例如:它从2013-03-27 22:02
变为2013-03-27 22.02
,取代'。'在一小时内用':'。 但是这足以导致我的应用程序崩溃,因为SQLServer生成的日期无效。
可能是什么罪魁祸首? 两台PC都安装了SQLServer 2008 R2(和相同的排序规则)和.NET Framework 4.0 Client Profile。 我见过一个区别是,我SQLServer的有英语(美国)语言属性,而其他有意大利设置好的,但是我应该与格式字符串克服它...
为什么您将值作为*字符串*传递给SQL?使用参数化SQL并将参数值设置为DateTime。 – 2013-03-27 21:17:01
这是我第一次尝试这种类型的项目,我想先做一些事情,就像写一个查询一样。 – VirtualFurla 2013-03-27 21:25:25
是的,所以写一个查询 - 带参数。它更干净,不受SQL注入攻击,并且没有转换问题。你将不得不迟早地开始使用参数 - 从一开始就这样做,所以你不会陷入坏习惯。 – 2013-03-27 21:35:30