使用其他格式插入数据库日期
我有一个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.ParseExact
或DateTime.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
检索数据时格式化日期时间