//
/// 類型轉換類
/// 處理數據庫獲取字段為空的情況
///
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+)?$" //浮點數
