System.formatexception:字符串未被识别为有效的日期时间。 [英] System.formatexception: string was not recognized as a valid datetime.

查看:366
本文介绍了System.formatexception:字符串未被识别为有效的日期时间。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。



异常详细信息:System.FormatException:String未被识别为有效的DateTime。



源错误:

 64 :{
65
66 int a = Sadapter.Insert(txtSErNo。 Text,txtSfname.Text,txtSLname.Text,txtSadd.Text,txtScity.Text,txtSstate.Text,
Line 67 :txtSpin.Text,Convert.ToDateTime (DrpDD.SelectedItem.Text + + DrpMM.SelectedItem.Text + + DrpYY.SelectedItem.Text),
Line 68 :DrpGender.SelectedItem.ToString(),txtSMoNo.Text,txtSeid.Text,txtSUname.Text,txtSpass.Text);





我的尝试:



  int  a = Sadapter.Insert(txtSErNo.Text,txtSfname.Text,txtSLname.Text,txtSadd.Text,txtScity .Text,txtSstate.Text,txtSpin.Text,Convert.ToDateTime(DrpDD.SelectedItem.Text +   + DrpMM.SelectedItem.Text +   + DrpYY.SelectedItem.Text),DrpGender.SelectedItem。 ToString(),txtSMoNo.Text,txtSeid.Text,txtSUname.Text,txtSpass.Text); 

解决方案

 Convert.ToDateTime(DrpDD.SelectedItem.Text ++ DrpMM.SelectedItem.Text ++ DrpYY.SelectedItem.Text)





使用DateTime.TryParse转换方法的instaed,以确保在下拉列表中选择的字符串生成有效日期,如果没有向最终用户抛出相应的错误消息。请参阅 DateTime.TryParse方法(字符串,日期时间)(系统) [ ^ ]


除了上面有用的答案之外,如果日期是外来格式(文化),或者应用程序在机器上运行,也可能会出现问题在另一个国家。

您可以按如下方式为您的应用程序设置所需的文化:

 CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture(  en-GB); 


试试吧这个:

  string  myString = DrpDD.SelectedItem.Text +   + DrpMM.SelectedItem.Text +   + DrpYY.SelectedItem.Text; 
DateTime myDate = DateTime.ParseExact(myString, dd MM yy null );


int a = Sadapter.Insert(txtSErNo.Text,txtSfname.Text,txtSLname.Text,txtSadd.Text,txtScity .Text,txtSstate.Text,
txtSpin.Text, myDate ,DrpGender.SelectedItem.ToString(),txtSMoNo.Text,txtSeid.Text,txtSUname.Text,txtSpass.Text);


Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: String was not recognized as a valid DateTime.

Source Error:

Line 64: {
Line 65: 
Line 66:     int a = Sadapter.Insert(txtSErNo.Text, txtSfname.Text, txtSLname.Text, txtSadd.Text, txtScity.Text,txtSstate.Text, 
Line 67:         txtSpin.Text, Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text),
Line 68:         DrpGender.SelectedItem.ToString(), txtSMoNo.Text, txtSeid.Text, txtSUname.Text, txtSpass.Text);



What I have tried:

int a = Sadapter.Insert(txtSErNo.Text, txtSfname.Text, txtSLname.Text, txtSadd.Text, txtScity.Text,txtSstate.Text, txtSpin.Text, Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text), DrpGender.SelectedItem.ToString(), txtSMoNo.Text, txtSeid.Text, txtSUname.Text, txtSpass.Text);

解决方案

Convert.ToDateTime(DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text)



use DateTime.TryParse instaed of Convert method to make sure the string selected in dropdown lists makes a valid date and if not throw appropriate error message to end user. Refer this for its usage DateTime.TryParse Method (String, DateTime) (System)[^]


In addition to the useful answers above, there could also be a problem if the date is in a foreign format (Culture), or the application is run on a machine in a different country.
You can set the needed Culture for your application as follows:

CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-GB");


Try it like this :

string myString = DrpDD.SelectedItem.Text + " " + DrpMM.SelectedItem.Text + " " + DrpYY.SelectedItem.Text ;
DateTime myDate = DateTime.ParseExact(myString, "dd MM yy",null) ;


int a = Sadapter.Insert(txtSErNo.Text, txtSfname.Text, txtSLname.Text, txtSadd.Text, txtScity.Text,txtSstate.Text, 
 txtSpin.Text, myDate, DrpGender.SelectedItem.ToString(), txtSMoNo.Text, txtSeid.Text, txtSUname.Text, txtSpass.Text);


这篇关于System.formatexception:字符串未被识别为有效的日期时间。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆