예제 #1
0
        /// <summary>
        /// Convert cell value to DateTime
        /// </summary>
        /// <param name="dataRow"></param>
        /// <param name="columnName">we will use dataRow[0] instead of empty columnName</param>
        /// <param name="defaultVal">the value should return if convert is failed or your data row value is DBNull</param>
        /// <returns></returns>
        public static DateTime ToDateTime(this DataRow dataRow, string columnName, DateTimeDefaultReturn defaultDtVal = DateTimeDefaultReturn.Now)
        {
            if (dataRow == null)
            {
                throw new ArgumentNullException("dataRow");
            }
            DateTime dtNow = DateTime.Now;

            if (defaultDtVal == DateTimeDefaultReturn.Min)
            {
                dtNow = DateTime.MinValue;
            }
            if (defaultDtVal == DateTimeDefaultReturn.Max)
            {
                dtNow = DateTime.MaxValue;
            }
            string result = string.Empty;

            if (!string.IsNullOrEmpty(columnName))
            {
                result = GlobalExt.ObjectToString(dataRow[columnName]);
            }
            else
            {
                result = GlobalExt.ObjectToString(dataRow[0]);
            }
            if (!string.IsNullOrEmpty(result))
            {
                DateTime.TryParse(result, out dtNow);
                return(dtNow);
            }

            return(DateTime.Now);
        }
예제 #2
0
        /// <summary>
        /// Convert cell value to DateTime string
        /// </summary>
        /// <param name="dataRow"></param>
        /// <param name="columnName">we will use dataRow[0] instead of empty columnName</param>
        /// <param name="defaultVal">the value should return if convert is failed or your data row value is DBNull</param>
        /// <returns></returns>
        public static string ToDateTimeString(this DataRow dataRow, string columnName, DateTimeDefaultReturn defaultDtVal = DateTimeDefaultReturn.Now, string format = "yyyy-MM-dd HH:mm:ss")
        {
            if (dataRow == null)
            {
                throw new ArgumentNullException("dataRow");
            }
            DateTime dtNow = DateTime.Now;

            try
            {
                if (!string.IsNullOrEmpty(columnName))
                {
                    dtNow = Convert.ToDateTime(dataRow[columnName]);
                }
                else
                {
                    dtNow = Convert.ToDateTime(dataRow[0]);
                }
            }
            catch (Exception)
            {
                switch (defaultDtVal)
                {
                case DateTimeDefaultReturn.Min:
                    dtNow = DateTime.MinValue;
                    break;

                case DateTimeDefaultReturn.Max:
                    dtNow = DateTime.MaxValue;
                    break;

                default:
                    dtNow = DateTime.Now;
                    break;
                }
            }
            return(dtNow.ToString(format));
        }