C#类型转换类(通用类)
//
/// 类型转换类
/// 处理数据库获取字段为空的情况
///
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#类型转换类(通用类)的更多相关文章
- Util应用程序框架公共操作类(二):数据类型转换公共操作类(源码篇)
上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决 ...
- Util应用程序框架公共操作类(三):数据类型转换公共操作类(扩展篇)
上一篇以TDD方式介绍了数据类型转换公共操作类的开发,并提供了单元测试和实现代码,本文将演示通过扩展方法来增强公共操作类,以便调用时更加简化. 下面以字符串转换为List<Guid>为例进 ...
- Util应用程序框架公共操作类(一):数据类型转换公共操作类(介绍篇)
本系列文章将介绍一些对初学者有帮助的辅助类,这些辅助类本身并没有什么稀奇之处,如何能发现需要封装它们可能更加重要,所谓授之以鱼不如授之以渔,掌握封装公共操作类的技巧才是关键,我会详细说明创建这些类的动 ...
- poi导出excel通用类
一.关键的通用类public class PoiExportUtils { private static HSSFWorkbook workBook; public PoiExportUtils ...
- NPOI MVC 模型导出Excel通用类
通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...
- MVC NPOI Linq导出Excel通用类
之前写了一个模型导出Excel通用类,但是在实际应用中,可能不是直接导出模型,而是通过Linq查询后获取到最终结果再导出 通用类: public enum DataTypeEnum { Int = , ...
- 利用反射实现类通用的DAO层
public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; C ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
- mongdo通用类(C#版)
日前从公司离职,很快,还没休息就步入了现在的公司,开始跟着公司的脚步走. 公司的项目基本都是大数据的,所以在数据库上大部分都是使用Mongodb和Redis,基本都是Nosql型的数据库为主.以前自己 ...
随机推荐
- JAVA语言程序设计课后习题----第三单元解析(仅供参考)
1 本题水题,记住要知道输入格式即可 import java.util.Scanner; public class test { public static void main(String[] ar ...
- mysql8安装
1.先卸载当前系统中已安装的mariadb rpm -qa | grep mariadb rpm -e --nodeps 文件名 2.安装mysql依赖包 yum install gcc gcc-c+ ...
- Rsync+Sersync实时同步数据目录
第1章 Rsync简介 1.1 Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份 全量:将全部数据,进行传输覆盖 增量:只传输差异部分的数据 1 ...
- 日常系统维护之修复linux的grub引导
恩,不知道怎么表达为win10的更新很烦人,其实我感觉windows用的不是那么顺手,但是制作视频的时候还是要用到,图片的话linux也可以胜任,毕竟GUN IMAGE还是挺不错的,但到了视频制作方面 ...
- 执行sudo pip3 ...报错 Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main ImportError: cannot import name 'main'
对于普通pip,把pip3改成pip即可,其他的修改一样 1.执行命令 sudo gedit /usr/bin/pip3 2.改成下面的形式 from pip import __main__ # 需要 ...
- 简单混合锁(HybridLock)
internal sealed class SimpleHybridLock : IDisposable { //基元用户模式构造使用 ; //基元内核模式构造 private AutoResetEv ...
- unittest 详解
内容总括 一. 初始化 setUp 与 tearDown setUpClass 与 tearDownClass unittest.main(verbosity=0/1/2) 二. 执行顺序 按顺序 ...
- IDEA导入maven中导入net.sf.json报错的解决方法
使用IDEA搭建Maven项目导入架包时, 添加net.sf.json的jar包的时候,代码如下: 在pom.xml文件时: <dependency> <groupId>net ...
- luogu3720 [AHOI2017初中组]guide[最短路]
初中组..唉 题意有点误解,当前在x点走一步,gps产生代价条件是沿非x到n的最短路走. 直接倒着跑两遍$i\sim n$的两种最短路,然后枚举每条边走的时候是否可以在两种最短路上,不是就产生1个代价 ...
- 内置对象-Math
1.随机数 Math.random() 1)获得0-1之间的随机数 2)0到100:Math.round(Math.random()*100) 2.max:求最大值 ,,,) console.log( ...