您的位置:首页 > 其它

invalid cast from system.string to system.nullable 转换可空类型报错

2013-07-22 19:58 288 查看
今天在工作遇到了
Convert.ChangeType
类型转换报错的问题,报错的提示信息是invalid cast from system.string to system.nullable

查资料发现ChangeType转换可空类型和转换其它类型是不同的,需要分别转换

原代码为:

Type t=Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");
DateTime date=DateTime.Now;
date=Convert.ChangeType("1990-01-01",t);


ChangeType方法执行的时候会报错,

解决方法:

Type t=Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");
DateTime date=DateTime.Now;

if (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Nullable<>))
{
if (String.IsNullOrEmpty(s))
date = null;
else
date = Convert.ChangeType(s, t.GetGenericArguments()[0]);
}
else
{
date=Convert.ChangeType("1990-01-01",t);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐