C#中的C#:用于插入sql server的Dateformat

nou*_*had 2 c#

我有一个日期格式的文本框dd/MM/yyyy,我想将其转换yyyy-MM-dd为将其插入数据库的格式.

我试过了

Convert.DateTime/DateTime.ParseExact 
Run Code Online (Sandbox Code Playgroud)

但它总是给我系统的默认日期格式.

我不知道在C#中转换它的任何其他方法...

Jon*_*eet 13

你不应该将其转换为字符串将其插入到你的数据库.(我对推荐这种方法的所有其他答案感到惊讶.)

相反,您应该使用参数化SQL,并将参数的DateTime值设置为您已获得的值.您应该使用参数化的SQL 无论如何,以避免SQL注入攻击,并保持你的代码和数据分开.避免不必要的字符串转换(每个都是潜在的痛点)的事实是另一个好处.

你的问题的这一部分表明你有一个基本的误解:

我使用Convert.DateTime/DateTime.ParseExact它总是给我系统日期格式.

那些方法会给你一个DateTime.一个DateTime具有的格式.当你打电话给ToString你时,只需获得当前文化的默认格式,但这不是价值的一部分.就像数字一样 - 16和0x10是相同的数字,并且int不知道它是十进制还是十六进制; 这是一个毫无意义的概念.

所有这些都超出了你的直接问题,试图在类型方面保持你的代码库清洁.你应该将数据保存在其最适当的形式尽可能多的时间,因为你可能会,并确保您了解在所有点正是该数据的装置.用于通信的其他类型(例如字符串)的转换应该仅在API /系统边界处进行,并且如果可能的话甚至可以避免(例如,在这种情况下使用参数化的SQL).