using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace Utils.Datas
|
|
{
|
|
public static class DataTypeUtil
|
|
{
|
|
public static int GetIntNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return 0;
|
|
return int.Parse(obj.ToString());
|
|
}
|
|
|
|
public static int? GetIntNullNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return null;
|
|
return int.Parse(obj.ToString());
|
|
}
|
|
|
|
public static double GetDoubleNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return 0;
|
|
return double.Parse(obj.ToString());
|
|
}
|
|
|
|
public static double? GetDoubleNullNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return null;
|
|
return double.Parse(obj.ToString());
|
|
}
|
|
|
|
public static decimal GetDecimalNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return 0;
|
|
return decimal.Parse(obj.ToString());
|
|
}
|
|
|
|
public static decimal? GetDecimalNullNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return null;
|
|
return decimal.Parse(obj.ToString());
|
|
}
|
|
|
|
public static long GetLongNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return 0;
|
|
return long.Parse(obj.ToString());
|
|
}
|
|
|
|
public static long? GetLongNullNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return null;
|
|
return long.Parse(obj.ToString());
|
|
}
|
|
|
|
public static DateTime? GetDateTimeNullData(object obj)
|
|
{
|
|
if (obj == null || string.IsNullOrEmpty(obj.ToString()))
|
|
return null;
|
|
return DateTime.Parse(obj.ToString());
|
|
}
|
|
|
|
public static bool GetBoolData(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return false;
|
|
return bool.Parse(obj.ToString());//只能转换字符串:“true”、“false”
|
|
}
|
|
|
|
///// <summary>
|
|
///// 用于FireBird的数据类型
|
|
///// </summary>
|
|
///// <param name="booleanNum">存储在数据库中的值(数据库中的类型为Smallint)</param>
|
|
//public static bool? GetBoolNullFromSmallInt(int booleanNum)
|
|
//{
|
|
// if (booleanNum > 0)
|
|
// return true;
|
|
// if (booleanNum == 0)
|
|
// return false;
|
|
// return null;//booleanNum < 0
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 用于FireBird的数据类型
|
|
///// </summary>
|
|
///// <param name="booleanNum">存储在数据库中的值(数据库中的类型为Smallint)</param>
|
|
//public static bool GetBoolDataFromSmallInt(int booleanNum)
|
|
//{
|
|
// return booleanNum > 0;
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 将bool类型值,转换为存储在Firebird数据库中的值
|
|
///// </summary>
|
|
///// <param name="booleanData"></param>
|
|
///// <returns></returns>
|
|
//public static int GetDatabaseDataFromBool(bool booleanData)
|
|
//{
|
|
// return booleanData ? 1 : 0;
|
|
//}
|
|
|
|
public static bool? GetBoolNullData(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return null;
|
|
return bool.Parse(obj.ToString());//只能转换字符串:“true”、“false”
|
|
}
|
|
|
|
public static short GetShortNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return 0;
|
|
return short.Parse(obj.ToString());
|
|
}
|
|
|
|
public static short? GetShortNullNum(object obj)
|
|
{
|
|
if (obj == null || obj.ToString() == string.Empty)
|
|
return null;
|
|
return short.Parse(obj.ToString());
|
|
}
|
|
|
|
public static string ToStringEmptyIfNull(object obj)
|
|
{
|
|
return obj == null ? string.Empty : obj.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 空数据会被转换为"null"
|
|
/// </summary>
|
|
public static string ToStringNullIfNull(decimal? num)
|
|
{
|
|
return num == null ? "null" : num.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 空数据会被转换为"null"
|
|
/// </summary>
|
|
public static string ToStringNullIfNull(int? num)
|
|
{
|
|
return num == null ? "null" : num.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 空数据会被转换为"null"
|
|
/// </summary>
|
|
public static string ToStringNullIfNull(DateTime? num)
|
|
{
|
|
return num == null ? "null" : num.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将以指定字符串分隔的数据转换成List数据。
|
|
/// <para>如果有为空或不合法的数据,则去除之,只保留合法的数据。</para>
|
|
/// </summary>
|
|
public static List<double> GetListDouble(object obj, string separator)
|
|
{
|
|
bool hasFailedItem;
|
|
return GetListDouble(obj, separator, out hasFailedItem);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将以指定字符串分隔的数据转换成List数据。有转换失败的信息,则out的值为true;否则为false
|
|
/// <para>如果有为空或不合法的数据,则去除之,只保留合法的数据。</para>
|
|
/// </summary>
|
|
/// <param name="hasFailedItem">有转换失败的信息,则out的值为true;否则为false</param>
|
|
public static List<double> GetListDouble(object obj, string separator, out bool hasFailedItem)
|
|
{
|
|
hasFailedItem = false;
|
|
List<double> result = new List<double>();
|
|
var splitResult = obj.ToString().Split(new string[] { separator }, StringSplitOptions.RemoveEmptyEntries);
|
|
foreach (var item in splitResult) {
|
|
double num;
|
|
if (double.TryParse(item, out num))
|
|
result.Add(num);
|
|
else
|
|
hasFailedItem = true;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将以指定字符串分隔的数据转换成List数据。
|
|
/// <para>如果有为空或不合法的数据,则去除之,只保留合法的数据。</para>
|
|
/// </summary>
|
|
public static List<int> GetListInt(object obj, string separator)
|
|
{
|
|
bool hasFailedItem;
|
|
return GetListInt(obj, separator, out hasFailedItem);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将以指定字符串分隔的数据转换成List数据。有转换失败的信息,则out的值为true;否则为false
|
|
/// <para>如果有为空或不合法的数据,则去除之,只保留合法的数据。</para>
|
|
/// </summary>
|
|
/// <param name="hasFailedItem">有转换失败的信息,则out的值为true;否则为false</param>
|
|
public static List<int> GetListInt(object obj, string separator, out bool hasFailedItem)
|
|
{
|
|
hasFailedItem = false;
|
|
List<int> result = new List<int>();
|
|
var splitResult = obj.ToString().Split(new string[] { separator }, StringSplitOptions.RemoveEmptyEntries);
|
|
foreach (var item in splitResult) {
|
|
int num;
|
|
if (int.TryParse(item, out num))
|
|
result.Add(num);
|
|
else
|
|
hasFailedItem = true;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将以指定字符串分隔的数据转换成List数据。
|
|
/// <para>如果有为空或不合法的数据,则去除之,只保留合法的数据。</para>
|
|
/// </summary>
|
|
public static IList<string> GetListString(object obj, string separator)
|
|
{
|
|
return obj.ToString().Split(new string[] { separator }, StringSplitOptions.RemoveEmptyEntries);
|
|
}
|
|
|
|
}
|
|
}
|