/// <summary>
/// add by wolf
/// </summary>
public static class ExtendObject
{
public static bool IsTargetType<T>(this object source) where T : IConvertible
{
Type targetType = typeof(T);

var tryParse = targetType.GetMethod("TryParse", BindingFlags.Static | BindingFlags.Public, Type.DefaultBinder,
new Type[] { typeof(T), targetType.MakeByRefType() },
new ParameterModifier[] { new ParameterModifier(2) });

if (tryParse == null)
return false;

var parameters = new object[] { source, Activator.CreateInstance(targetType) };

if (source is DBNull)
{
return false;
}
return (bool)tryParse.Invoke(null, parameters);
}

public static T ToTargetType<T>(this object source) where T : IConvertible
{
Type targetType = typeof(T);

var parse = targetType.GetMethod("Parse", BindingFlags.Static | BindingFlags.Public, Type.DefaultBinder,
new Type[] { typeof(object) },
new ParameterModifier[] { new ParameterModifier(1) });

if (parse == null)
return default(T);

return (T)parse.Invoke(null, new object[] { source });
}

public static T ToTargetTypeConvert<T>(this object source) where T : IConvertible
{
Type targetType = typeof(T);

return (T)Convert.ChangeType(source, targetType);

}

public static T AsTargetType<T>(this object source, T defaultValue) where T : IConvertible
{
if (source is DBNull)
{

}
object retunVal;
try
{
retunVal = source.ToTargetTypeConvert<T>();
}
catch (Exception)
{
return defaultValue;
}

return (T)retunVal;
}
}

用于dbnull的数据转换。因为用convert.to无法转换dbnull类型的更多相关文章

  1. Convert.ChangeType不能处理Nullable类型的解决办法

    在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable类型,比如int?. 解决办法也很简单,贴出完整的代码(大部分代码来自网络),注意下面代码没经过完 ...

  2. (转)SQL Server中使用convert进行日期转换

    原文链接:http://www.cnblogs.com/weiqt/articles/1826847.html SQL Server中使用convert进行日期转换 一般存入数据库中的时间格式为yyy ...

  3. Convert.ChangeType不能处理Nullable类型的解决办法(转)

    https://www.cnblogs.com/patrickyu/p/3211115.html 在做一个ORMapping功能的时候发现,Convert.ChangeType不能处理nullable ...

  4. 使用IMAGEMAGICK的CONVERT工具批量转换图片格式

    使用IMAGEMAGICK的CONVERT工具批量转换图片格式 http://www.qiansw.com/linux-imagemagick-convert-img.html Home > 文 ...

  5. convert图像格式批量转换

    问题:利用GMT绘制生成了eps格式的图像,为了将图像插入到word中,且保持较高的分辨率,利用convert进行图像格式转换,将eps转换成tiff格式. code:  $i ${name}.tif ...

  6. iconv简介(1、字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2、编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有linux等)

    iconv简介(1.字符串|文件字符转换:iconv用于将一种已知的字符集文件转换成另一种已知的字符集文件)(2.编程语言函数功能的相似性:iconv不仅再php中有用,而且c语言中也有用,还有lin ...

  7. SQL Server中使用convert进行日期转换

    使用 CONVERT: CONVERT (data_type[(length)],expression[,style]) 参数 expression 是任何有效的 Microsoft® SQL Ser ...

  8. SQL Server中使用convert进行日期转换(转载)

    一般存入数据库中的时间格式为yyyy-mm-dd hh:mm:ss 如果要转换为yyyy-mm-dd  短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声 ...

  9. convert时间格式转换参数表

    本文摘自:http://blog.csdn.net/zc19820620/article/details/2043829 CONVERT (data_type[(length)], expressio ...

随机推荐

  1. Java对象创建阶段的代码调用顺序

    在创建阶段系统通过下面的几个步骤来完成对象的创建过程 为对象分配存储空间 开始构造对象 从超类到子类对static成员进行初始化 超类成员变量按顺序初始化,递归调用超类的构造方法 子类成员变量按顺序初 ...

  2. Redrain个人维护并使用的DuiLib和UiLib库源代码下载地址

    转载请说明原出处:http://blog.csdn.net/zhuhongshu/article/details/40740353,谢谢~~ 首先说明一下Duilib和Uilib的差别:UiLIb是D ...

  3. 第一篇HBuilder在这里!

    本文作为一个引子,所有相关文章,都会在这里做一个索引,现在还空着.谢谢

  4. Windows2008 R2下,DCOM配置里的属性灰色不可用的解决方法

    错误为:为应用程序池“XXXXXX”提供服务的进程在与“Windows Process Activation Service”通信时出现严重错误.该进程 ID 为"XXX".数据字 ...

  5. CREATE A ENERGY / HEALTH BAR HUD

    Now then, let's get started. 1. Open the Play scene which you had created in the previous post. If y ...

  6. ODAC(V9.5.15) 学习笔记(十八) 数据集缓冲模式

    数据集的缓冲模式(Cached mode)是将数据库服务器的数据缓冲在客户端内存中进行处理,不再依赖服务器.只有当数据需要提交数据库服务器进行保存时,才将变更数据一次性提交数据库服务器. 数据集缓冲模 ...

  7. 关于STM8空间不足的解决方法

    STM8虽然功能齐全,但是空间不足也是经常出来的情况.要么.text overflow,要么.bss overflow,让人头疼.这里把一些优化方案列出来,让空间得到充分利用: 1.在Project ...

  8. POJ 1451 T9

    T9 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3083   Accepted: 1101 Description Ba ...

  9. yii2 [行为] behaviors 拦截器

    yii2 拦截器 在控制器中可以自定义对action的拦截器,拦截器需要继承 \yii\base\ActionFilter 参考代码: class BaseUserAuthorizeFilter ex ...

  10. struts2完全捕获404错误的方法

    目前在做一个网络应用程序,struts2 + spring + hibernate,服务器是tomcat.希望用户在IE地址栏乱敲的时候,所敲入的所有未定义的URL都能被程序捕捉到,然后转到一个自制的 ...