2012-07-07 63 views
-1

我使用此代码传递日期时间。字符串未被识别为有效的日期时间。在C#

Convert.ToDateTime(textBox1.Text) 

但编译器显示错误,表明字符串未被识别为有效的日期时间。所以如何避免这个错误,并且是我的数据库中的日期时间字段。

+0

什么是输入字符串的值? – aleroot 2012-07-07 09:14:01

+1

“textBox1.Text”的价值是什么?我猜这是不能直接解析到'DateTime'中的东西。如何避免这个错误是使用正确的'DateTime'值,使用'DateTime.TryParse()'来处理可能的错误等。这与你的数据库字段无关。 – David 2012-07-07 09:14:41

+0

我通常输入如同01/01/2012 – 2012-07-07 09:16:21

回答

0
Convert.ToDateTime(textBox1.Text) 

此代码将引发异常,如果在textBox1.Textstring值不表示一个有效的DateTime(或至少不能被解析成一个在C#默认功能)。你可以添加一些防御性编程来处理这样的错误。

DateTime类型(以及大多数,如果不是全部,.NET中的常见值类型)具有a method on it called TryParse()专门用于尝试将值解析为该类型而不引发异常。如果解析成功,则该方法返回true,否则返回false。并且它接受out参数来保存结果解析值(或者如果解析不成功则返回原始值)。

因此,不是这样的:

var dateTimeValue = Convert.ToDateTime(textBox1.Text); 

你可以使用这样的事情:

var dateTimeValue = DateTime.MinValue; 
if (DateTime.TryParse(textBox1.Text, out dateTimeValue)) 
    // use the value for something 
相关问题