2013-07-13 29 views
2

我一直在我的C​​#项目中有同样的问题。我尝试插入日期时间到SQL表,但在土耳其。日期总是DD.MM.YYYY,C#或SQL有时会尝试像美国一样插入MM.DD.YYYY。简单的方法来转换C#日期和SQL日期时间

我该如何解决这个问题呢?

这里有一个例子代码

string selectSql = @"INSERT INTO [RN_VEHICLES_GUEST_INOUT] ([PLAKA],[MY_DATE]) 
        VALUES(@PLAKA,@MY_DATE) 

cmd.Parameters.Add("@PLAKA", SqlDbType.VarChar, 50); 
cmd.Parameters.Add("@GELIS_TARIHI", SqlDbType.DateTime); 

cmd.Parameters["@PLAKA"].Value = txtPlaka.Text.ToString(); 
cmd.Parameters["@GELIS_TARIHI"].Value = dateGelisTarihi.EditValue.ToString(); 

此代码的工作,直到今天,它崩溃的今天,因为今天是2013年7月13日,并试图将它插入MM.DD.YYYY。昨天它是2012年7月12日,我没有问题,因为它可以将12个月换算成一个月,但不是13个。那是我怎么意识到这个问题的。

如何确保C#和SQL始终以DD.MM.YYYY格式工作?

回答

9

如果这是一个DateTime字段的数据库和DateTime变量在C#中,为什么你将它转换为String呢?

所以不是

cmd.Parameters.Add("@GELIS_TARIHI", SqlDbType.DateTime); 
cmd.Parameters["@GELIS_TARIHI"].Value = dateGelisTarihi.EditValue.ToString(); 

只是

cmd.Parameters.Add("@GELIS_TARIHI", SqlDbType.DateTime); 
cmd.Parameters["@GELIS_TARIHI"].Value = dateGelisTarihi.EditValue; 

(假设dateGelisTarihi.EditValueDateime

+0

是的,你是对的。这是一个古老的习惯。非常感谢你。我会尽快标记它 –