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型的数据库为主.以前自己 ...
随机推荐
- css样式小结(持续更新...)
1.手写table的border,显示空白间隔,而不是想要的样式,需要添加下面的样式处理 table{ border-collapse:collapse; } 2.移动端输入框效果,去掉高亮边框, i ...
- Jetson TX1 安装ROS操作系统
直接按照官网上的步骤安装即可,其中会出现很多bug,主要是依赖库安装的问题,添加清华源和中科大源,(注意:中科大源会有些问题)需要apt-get update 和 apt-get upgrade更新库 ...
- Linux awk命令 --三剑客老大
Linux awk命令 --三剑客老大 基本用法: awk [参数] ['找谁{干啥}'] 文件 参数: -F 分隔符 -v 创建或修改awk变量 OFS 输出分割符 awk显示每一列的时候分隔 ...
- linux基础—课堂随笔010_系统启动和内核管理
系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, functio ...
- android如何自动切换后台app
在做 android 前端性能自动化测试时,你是否经历过这样的场景:依次启动 A.B.C 三个 app,其中 C 是被测 app, 当当前屏幕切换到 B 进行相关操作后,如何通过封装方法实现自动切换会 ...
- PAT Basic 1030 完美数列 (25 分)
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...
- JAVA面试/笔试经典题
1.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时 ...
- C语言1-2019秋第一周作业
第一周作业 1.你对软件工程专业或者计算机科学与技术专业了解是怎样? 软件技术专业是计算机科学的一个分支,和软件科学与技术专业相比较,软件技术专业的侧重点在开发和技术的实际应用,而对软件开发的理论要求 ...
- mysql解除锁表
查看下在锁的事务 :SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 杀死进程id(就是上面命令的trx_mysql_thread_id列):kill 线程ID
- SpringBoot入门系列:第五篇 JPA mysql(转)
一,准备工作,建立spring-boot-sample-mysql工程1.http://start.spring.io/ A.Artifact中输入spring-boot-sample-mysql B ...