我正在尝试将asp.net表单字段值插入到oracle数据库表中.我有一个日期字段,格式为"MM-DD-YYYY".我需要将该日期添加到oracle表.所以我试图将该日期格式转换为"DD-MMM-YYYY"格式.但我收到以下错误.
码:
var creation_date = DateTime.ParseExact(CreationDateTextBox.Text, "DD-MMM-YYYY",null);
Run Code Online (Sandbox Code Playgroud)
文本框值是:12-12-2013.(没时间)我收到错误,如"字符串未被识别为有效的DateTime".
您需要使用解析日期,MM-dd-yyyy但您根本不需要格式化它.只需将其作为DateTime使用参数化SQL 传递给数据库.
DateTime creationDate;
if (DateTime.TryParseExact(CreationDateTextBox.Text, "MM-dd-yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None,
out creationDate))
{
// Use creationDate within a database command, but *don't* convert it
// back to a string.
}
else
{
// Handle invalid input
}
Run Code Online (Sandbox Code Playgroud)
尽可能避免字符串转换.实际上,理想情况下使用某些描述的日期/时间选择器而不仅仅是文本字段 - 这将为用户提供更好的体验并降低转换不良的风险.
另请注意,无论何时您想使用自定义字符串转换(解析或格式化),您都应该阅读MSDN文档 - YYYY并且DD它们不是有效的格式说明符.
小智 6
这可能会有所帮助:)
String myString = "12-30-2014"; // get value from text field
DateTime myDateTime = new DateTime();
myDateTime = DateTime.ParseExact(myString, "MM-dd-yyyy",null);
String myString_new = myDateTime.ToString("dd-MM-yyyy"); // add myString_new to oracle
Run Code Online (Sandbox Code Playgroud)