2011-05-09 44 views
0

这是我的code.but值不能插入数据库中。它会通过下拉列表获取除选定值以外的系统日期时间。引发异常“字符串未被识别为有效的DateTime”该怎么办?

string strDateOfBirth = ddlMonth.SelectedValue.ToString(); 
strDateOfBirth = strDateOfBirth + "/" + ddlBirthDate.SelectedValue.ToString(); 
strDateOfBirth = strDateOfBirth + "/" + ddlYear.SelectedValue.ToString(); 

//objVivah.BirthDate = DateTime.ParseExact(strDateOfBirth, "MM/dd/yyyy hh:mm", null); 
objVivah.BirthDate = Convert.ToDateTime(strDateOfBirth); 
// objVivah.BirthDate = Convert.ToString(strDateOfBirth); 
+2

请您在第3行之后指出'strDateOfBirth'的实际值。 – 2011-05-09 05:23:26

+1

请注意,不要发布仅用于分散注意力的代码。 – Oded 2011-05-09 05:29:57

回答

1

要使用Convert.ToDateTime功能String转换为DateTime,在String必须在一个特定的格式。如果您String有不同的格式,需要使用DateTime.ParseExact功能将其转换:

DateTime.ParseExact(strDateOfBirth, "MM/d/yyyy", CultureInfo.InvariantCulture); 
0

试试这个:

objVivah.BirthDate = DateTime.ParseExact(strDateOfBirth, "MM/dd/yyyy", null); 

你可能想看看的TryParse为好。

0

好了,我不会创建开始与字符串 - 如果你已经有每个部分,您可以分析那些作为整数(使用int.Parse),然后创建一个日期时间。或者对于下拉列表,您甚至可以避免使用字符串值开始,这将是理想的。 (使与每个项目相关的只是一个整数,这可能是不可行的,这取决于您使用的是什么UI技术 - 您还没有说过是否是WinForms,ASP.NET,WPF等)

使用DateTime.ParseExact与适当的格式字符串是第二好的方法,但我没有看到创建一个字符串,然后解析它的任何意义。

相关问题