0

我有一个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);

我得到:字符串未被识别为有效的日期时间。

谢谢

4

2 回答 2

4

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

您可以先尝试使用or获取有效System.DateTime对象。DateTime.ParseExactDateTime.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);
于 2012-06-15T07:51:21.883 回答
2

首先你应该使用DateTimeobject 而不是Date.Text,首先将你的文本转换成DateTime

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

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

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

于 2012-06-15T07:49:54.100 回答