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” } ///// ///// 用于FireBird的数据类型 ///// ///// 存储在数据库中的值(数据库中的类型为Smallint) //public static bool? GetBoolNullFromSmallInt(int booleanNum) //{ // if (booleanNum > 0) // return true; // if (booleanNum == 0) // return false; // return null;//booleanNum < 0 //} ///// ///// 用于FireBird的数据类型 ///// ///// 存储在数据库中的值(数据库中的类型为Smallint) //public static bool GetBoolDataFromSmallInt(int booleanNum) //{ // return booleanNum > 0; //} ///// ///// 将bool类型值,转换为存储在Firebird数据库中的值 ///// ///// ///// //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(); } /// /// 空数据会被转换为"null" /// public static string ToStringNullIfNull(decimal? num) { return num == null ? "null" : num.ToString(); } /// /// 空数据会被转换为"null" /// public static string ToStringNullIfNull(int? num) { return num == null ? "null" : num.ToString(); } /// /// 空数据会被转换为"null" /// public static string ToStringNullIfNull(DateTime? num) { return num == null ? "null" : num.ToString(); } /// /// 将以指定字符串分隔的数据转换成List数据。 /// 如果有为空或不合法的数据,则去除之,只保留合法的数据。 /// public static List GetListDouble(object obj, string separator) { bool hasFailedItem; return GetListDouble(obj, separator, out hasFailedItem); } /// /// 将以指定字符串分隔的数据转换成List数据。有转换失败的信息,则out的值为true;否则为false /// 如果有为空或不合法的数据,则去除之,只保留合法的数据。 /// /// 有转换失败的信息,则out的值为true;否则为false public static List GetListDouble(object obj, string separator, out bool hasFailedItem) { hasFailedItem = false; List result = new List(); 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; } /// /// 将以指定字符串分隔的数据转换成List数据。 /// 如果有为空或不合法的数据,则去除之,只保留合法的数据。 /// public static List GetListInt(object obj, string separator) { bool hasFailedItem; return GetListInt(obj, separator, out hasFailedItem); } /// /// 将以指定字符串分隔的数据转换成List数据。有转换失败的信息,则out的值为true;否则为false /// 如果有为空或不合法的数据,则去除之,只保留合法的数据。 /// /// 有转换失败的信息,则out的值为true;否则为false public static List GetListInt(object obj, string separator, out bool hasFailedItem) { hasFailedItem = false; List result = new List(); 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; } /// /// 将以指定字符串分隔的数据转换成List数据。 /// 如果有为空或不合法的数据,则去除之,只保留合法的数据。 /// public static IList GetListString(object obj, string separator) { return obj.ToString().Split(new string[] { separator }, StringSplitOptions.RemoveEmptyEntries); } } }