我在c#项目中遇到同样的问题。我尝试将日期时间插入sql表,但在土耳其。日期总是DD.MM.YYYY,C#或SQL有时会尝试像美式方式一样插入MM.DD.YYYY。
如何永远解决这个问题?
这是一个示例代码
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插入。 yesterdat它是12.07.2012而我没有问题,因为它可以将12转换为一个月而不是13.这就是我如何意识到这个问题。
如何确保C#和SQL始终以DD.MM.YYYY格式工作?
答案 0 :(得分:9)
如果它是数据库中的DateTime
字段和C#中的DateTime
变量,为什么要将其转换为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.EditValue
是Dateime
)