//
    /// 类型转换类
    /// 处理数据库获取字段为空的情况
    ///
    public static class DBConvert
    {
        #region------------------ToInt32类型转换------------------
        ///
        /// 读取数据库中字符串并转换成Int32
        /// 为空时返回0
        ///
        /// object类型的值
        /// Int32类型
        public static int ToInt32(object obj)
        {
            int result = 0;
            if (IsInt(Convert.ToString(obj)))
            {
                result = Convert.ToInt32(obj);
            }
            else if (obj != null && obj is Enum) //处理非null值类型时(或者枚举)
            {
                result = ((IConvertible)obj).ToInt32(null);
            }
            return result;
        }
 
        ///
        /// 读取数据库中字符串并转换成Int32
        /// 为空时返回0
        ///
        /// string类型的值
        /// Int32类型
        public static int ToInt32(string str)
        {
            int result = 0;
            if (IsInt(str))
            {
                result = Convert.ToInt32(str);
            }
            return result;
        }
 
        ///
        /// 判断一个字符串是否属于Int类型
        /// 如果是的返回true,如果不是返回false
        ///
        /// string类型的值
        /// true:是Int的字符串(即可以转换成Int类型),false:不是Int类型的字符串
        public static bool IsInt(string str)
        {
            bool result = false;
            if (str != "" && str!=null)
            {
                Regex reg = new Regex("^[0-9]*$");
                if (reg.IsMatch(str))
                {
                    result = true;
                }
            }
            return result;
        }
        #endregion
 
        #region------------------ToString类型转换------------------
        ///
        ///  读取数据库中字符串并转换成string
        ///
        /// object类型的值
        /// string类型
        public static string ToString(object obj)
        {
            string result = "";
            if (obj != null)
            {
                result = Convert.ToString(obj);
            }
            return result;
        }
        #endregion
 
        #region------------------ToDouble类型转换------------------
        ///
        /// 判断一个字符串是否属于Double类型(包括负浮点型)
        /// 如果是的返回true,如果不是返回false
        ///
        /// string类型的值
        /// true:是Double的字符串(即可以转换成Double类型),false:不是Double类型的字符串
        public static bool IsDouble(string str)
        {
            bool result = false;
            if (str != "" && str != null)
            {
                Regex reg = new Regex(@"^(-?\d+)(\.\d+)?$");
                if (reg.IsMatch(str))
                {
                    result = true;
                }
            }
            return result;
        }
 
        ///
        /// 读取数据库中字符串并转换成Int32
        /// 为空时返回0
        ///
        /// object类型的值
        /// Int32类型
        public static double ToDouble(object obj)
        {
            double result = 0.0;
            if (IsDouble(Convert.ToString(obj)))
            {
                result = Convert.ToDouble(obj);
            }
            else if (obj != null && obj is Enum) //处理枚举
            {
                result = ((IConvertible)obj).ToDouble(null);
            }
            return result;
        }
 
        ///
        /// 读取数据库中字符串并转换成Int32
        /// 为空时返回0
        ///
        /// string类型的值
        /// Int32类型
        public static double ToDouble(string str)
        {
            double result = 0.0;
            if (IsDouble(str))
            {
                result = Convert.ToDouble(str);
            }
            return result;
        }
        #endregion
 
        #region------------------ToDateTime类型转换------------------
        ///
        /// 判断时间格式是否是时间类型
        /// 如23:10
        ///
        /// 要判断的字符串
        /// true:是时间类型的字符串(即可以转换成时间类型),false:不是时间类型的字符串
        public static bool isDateTime(string str)
        {
            bool result = false;
            if (str != "" && str != null)
            {
                Regex reg = new Regex("(([01]\\d)|(2[0-3])):[0-5]\\d");
                if (reg.IsMatch(str))
                {
                    result = true;
                }
            }
            return result;
        }
        #endregion
 
    }
}
//"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
//"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
//"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
//"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
//"^(-?\d+)(\.\d+)?$"  //浮点数

C#类型转换类(通用类)的更多相关文章

  1. Util应用程序框架公共操作类(二):数据类型转换公共操作类(源码篇)

    上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决 ...

  2. Util应用程序框架公共操作类(三):数据类型转换公共操作类(扩展篇)

    上一篇以TDD方式介绍了数据类型转换公共操作类的开发,并提供了单元测试和实现代码,本文将演示通过扩展方法来增强公共操作类,以便调用时更加简化. 下面以字符串转换为List<Guid>为例进 ...

  3. Util应用程序框架公共操作类(一):数据类型转换公共操作类(介绍篇)

    本系列文章将介绍一些对初学者有帮助的辅助类,这些辅助类本身并没有什么稀奇之处,如何能发现需要封装它们可能更加重要,所谓授之以鱼不如授之以渔,掌握封装公共操作类的技巧才是关键,我会详细说明创建这些类的动 ...

  4. poi导出excel通用类

    一.关键的通用类public class PoiExportUtils {    private static HSSFWorkbook workBook; public PoiExportUtils ...

  5. NPOI MVC 模型导出Excel通用类

    通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...

  6. MVC NPOI Linq导出Excel通用类

    之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...

  7. 利用反射实现类通用的DAO层

    public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; C ...

  8. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  9. mongdo通用类(C#版)

    日前从公司离职,很快,还没休息就步入了现在的公司,开始跟着公司的脚步走. 公司的项目基本都是大数据的,所以在数据库上大部分都是使用Mongodb和Redis,基本都是Nosql型的数据库为主.以前自己 ...

随机推荐

  1. centos 7 Apache-Tomcat-8.5.46 安装 Web 应用服务器

    tomcat 官网版本地址:https://tomcat.apache.org/whichversion.html Servlet规格 JSP规范 EL规格 WebSocket规范 JASPIC规格 ...

  2. 基于MYCAT中间件实现MYSQL读写分离

    基于mycat实现mysql读写分离 完成主从复制的配置 /* 主节点:192.168.47.101 从节点:192.168.47.102 */ /*mycat为同一网段客户端*/ /* 修改主节点基 ...

  3. STM32WB RTC

    实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器.RTC 提供一个带可编程闹钟中断的日历时钟以及一个具有中断功能的周期性可编程唤醒标志.RTC 还包含用于管理所有低功耗模式的自动唤醒单元.两 ...

  4. 十,StatefulSet简介及简单使用

    目录 StatefulSet简介 为什么要用statefulset控制器 简单测试 使用 StatefulSet 创建基础的PV StatefulSet 清单 statefulset管理pod的启停顺 ...

  5. Jumpserver1.4.1安装

    第1章 CentOS环境准备 Jumpserver官网: http://docs.jumpserver.org/zh/docs/step_by_step.html 测试推荐硬件 CPU: 64位双核处 ...

  6. linux weblogic的sh文件

      setDomainEnv.sh   JAVA_HOME和各种jvm参数,CLASSPATH都在这里配置 #!/bin/sh   # WARNING: This file is created by ...

  7. Win7 右键 新建图标消失的解决办法

    方法一: 把下面一段代码存在一个记事本上,再选择另存为1.cmd,最后运行! regsvr32 /u /s igfxpph.dll reg delete HKEY_CLASSES_ROOT\Direc ...

  8. h5构建页面(rem布局准备)

    新建一个flex.js ! function () { function t(t) { return this.config = t, this } t.prototype = { reset: fu ...

  9. (转发)Android 源码获取-----在Windows环境下通过Git得到Android源代码

    在学习Android的过程中,深入其源代码研究对我们来说是非常重要的,这里将介绍如何通过在Windows环境下使用Git来得到我们的Android源代码. 1.首先确保你电脑上安装了Git,这个通过  ...

  10. abd常用命令

    1.adb install -r 包名       ----------安装包,-r 替换原有apk安装 2.adb uninstall -k 包名       ---------------卸载包, ...