我有一个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。
由于
答案 0 :(得分:4)
数据库中格式不相关的日期类型(除非您将其存储为字符串)。
您可以先尝试使用System.DateTime
或DateTime.ParseExact
获取有效的DateTime.Parse
对象。
然后,使用此值设置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);
答案 1 :(得分:2)
首先,您应该使用DateTime
对象而不是Date.Text
,首先将文字转换为DateTime
其次,如果数据类型是SQLServer表中的数据时间,则不需要在插入时格式化日期时间。
"Insert into test (Name,Date) VALUES (@Name, @Date)";
您应该在select