使用其他格式插入数据库日期

我有一个gridview和sqldatasource。

我正在尝试在数据库中插入新记录,Date列类型为Date,默认格式为US,mm / dd / yyyy,我正在尝试插入另一种格式的日期。

SqlDataSource2.InsertCommand = "Insert into test (Name,Date) VALUES (@Name,@CONVERT(Date,'@Date',104))"; SqlDataSource2.InsertParameters.Add("Name", nameText); SqlDataSource2.InsertParameters.Add("Date", DbType.DateTime, date.Text); 

我得到:字符串未被识别为有效的DateTime。

谢谢

数据库中的日期类型格式不可知(除非您将其存储为字符串)。

您可以首先尝试使用DateTime.ParseExactDateTime.Parse获取有效的System.DateTime对象。

然后,使用此值设置SqlParameter。

 DateTime dateValue = DateTime.Parse(date.Text); // try to make this working first. SqlDataSource2.InsertCommand= "Insert into test (Name,Date) VALUES (@Name,@Date)"; SqlDataSource2.InsertParameters.Add("Name", nameText); SqlDataSource2.InsertParameters.Add("Date", DbType.DateTime, dateValue); 

首先,您应该使用DateTime对象而不是Date.Text ,首先将文本转换为DateTime

其次,如果数据类型是SQLServer表中的数据时间,则不需要在插入时格式化日期时间。

 "Insert into test (Name,Date) VALUES (@Name, @Date)"; 

您应该在select检索数据时格式化日期时间