//
/// 类型转换类
/// 处理数据库获取字段为空的情况
///
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+)?$" //浮点数