【小Y学算法】⚡️每日LeetCode打卡⚡️——15.实现 strStr()

9 QA 错误和警告消息.

  返回  

c# this关键字扩展方法,验证数据

2021/8/20 19:07:08 浏览:

c# 使用this关键字扩展方法,验证数据,复制可用

调用示例1:

	//str 是一个string类型的变量
	if (str.isNullOrEmpty()) throw new Exception("请输入内容");//判断空值 或者 空字符串
	if (str.isNumber()==false) throw new Exception("输入的内容不是数字类型");//判断是不是数字

	int aa = str.isToBool_Int();//判断是不是Int类型的数字 ,如果不是返回0
	decimal bb = str.isToNumber();//判断是不是数字 ,如果不是返回0
	string cc = str.isNullOrEmptyToStr();//判断 是不是空值 或者 空字符串,如果是 ,返回"" 字符串
	string dd = str.isNullOrEmptyToStr("999");//判断空值或者空字符串,如果是,返回"999" 字符串
	string ee = str.ToRightString(3);//取字符串 右边3位数
	object ff = str.ToSQL_TrimStringDBNull();//如果为 空字符串,返回 数据库空值 DBNull.Value
	object gg = str.isToNumberDBNull();//判断是不是数字 ,如果不是返回 数据库空值 null

	string hh = str.ToString_Add0(3);//取字符串右边位数  补0
	byte[] kk = str.ToByteArray();//字符串转字节数组

调用示例2:

var para2 = new List<SqlParameter>();
para2.Add(new SqlParameter("type", type.isToNumber_Int(-1)));//如果type为空,或者不是数字,赋值-1
para2.Add(new SqlParameter("crid", crid.ToSQL_TrimString()));//格式化参数字符串
para2.Add(new SqlParameter("tcode", tcode.isNullOrEmptyToStr("999")));//如果tcode为空,返回999
para2.Add(new SqlParameter("whid", whid.ToRightString(3)));//如果whid=8,返回008
para2.Add(new SqlParameter("suNum", suNum.isToNumberDBNull()));//如果suNum不是数字,返回数据库空值 null
para2.Add(new SqlParameter("ckDate", ckDate.is_ToDatetime(false)));//日期格式化,空字符串或者"1900"这种,返回数据库空值 DBNull.Value
para2.Add(new SqlParameter("isuse", isuse.isToNumber_Int()));//如果不是数字,返回0 

完整代码,直接copy可用:

using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;

namespace Controller
{
	public static class Normal
    {
        public static String ToSQLString(this Object source)
        {
            return Convert.ToString(source).Replace("'", "''").Trim();
        }
        public static String ToSQL_TrimString(this Object source)
        {
            return Convert.ToString(source).Replace("'", "''").Trim();
        }
        /// <summary>
        /// 如果为 空字符串,返回 数据库空值 
        /// </summary>
        /// <param name="source"></param>
        /// <param name="is_Error"></param>
        /// <returns></returns>
        public static object ToSQL_TrimStringDBNull(this Object source,bool is_Error=false)
        {
            try
            {
                if (source == null) return DBNull.Value;
                if (source.ToSQLString().Trim() == "") return DBNull.Value;
                return Convert.ToString(source).Replace("'", "''").Trim();
            }
            catch (Exception)
            {
                if (is_Error)
                    throw new Exception("日期格式错误");
                else return DBNull.Value;
            }
        }
        public static void ToSqlStringPara(params string[] arg)
        {
            //string.Format("",SerializationFormat,)
        }
        /// <summary>
        /// 判断是不是数字
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static bool isNumber(this Object source)
        {
            decimal d = 0;
            if (!decimal.TryParse(Convert.ToString(source), out d))
            {
                return false;
            }
            return true;
        }
        /// <summary>
        /// 判断是不是数字 ,如果不是返回0
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static decimal isToNumber(this Object source,decimal outStr=0)
        {
            decimal d = 0;
            if (!decimal.TryParse(Convert.ToString(source), out d))
            {
                return outStr;
            }
            return decimal.Parse(Convert.ToString(source));
        }
        /// <summary>
        /// 判断是不是数字 ,如果不是返回 数据库空值 null
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static object isToNumberDBNull(this Object source)
        {
            decimal d = 0;
            if (!decimal.TryParse(Convert.ToString(source), out d))
            {
                return DBNull.Value;
            }
            return decimal.Parse(Convert.ToString(source));
        }

        /// <summary>
        /// 判断是不是数字 ,如果不是返回0
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static int isToNumber_Int(this Object source, int outStr = 0)
        {
            int d = 0;
            if (!int.TryParse(Convert.ToString(source), out d))
            {
                return outStr;
            }
            return int.Parse(Convert.ToString(source));
        }
        /// <summary>
        /// 判断 是不是空值 或者 空字符串
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static bool isNullOrEmpty(this Object source)
        {
            if (source == null) return true;
            if (source.ToString() == "") return true;
            return false;
        }

        /// <summary>
        /// 将Datatable 第一列 转换成  数组
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static List<object> toToListObj(this DataTable source)
        {
            List<object> lobj = new List<object>();
            if (source == null) return lobj;
            if (source.ToString() == "") return lobj;
            for (int i = 0; i < source.Rows.Count; i++)
            {
                lobj.Add(source.Rows[i][0]);
            }
            return lobj;
        }
        /// <summary>
        /// 判断 是不是空值 或者 空字符串,如果是null ,返回"" 字符串
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string isNullOrEmptyToStr(this Object source,string defaultStr="")
        {
            if (source == null) return defaultStr;
            if (source.ToString() == "") return defaultStr;
            return source.ToString();
        }
        /// <summary>
        /// 判断 是不是空值 或者 空字符串,如果是null ,返回"" 字符串
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string isNullOrEmptyToSqlStr(this Object source, string defaultStr = "")
        {
            if (source == null) return defaultStr.Replace("'", "''").Trim(); ;
            if (source.ToString() == "") return defaultStr.Replace("'", "''").Trim(); ;
            return source.ToString().Replace("'", "''").Trim(); ;
        }

        /// <summary>
        /// 转换日期时间 插入数据库
        /// </summary>
        /// <param name="source"></param>
        /// <param name="FormatHourFM">格式化时间,false只是日期</param>
        /// <param name="is_Error">是否抛出异常,或者返回DBNull</param>
        /// <returns></returns>
        public static object is_ToDatetime(this string source,bool FormatHourFM=true,bool is_Error=false)
        {
            try
            {
                if (source == null) return DBNull.Value;
                if (source.ToSQLString() == "") return DBNull.Value;
                if (source.ToSQLString().IndexOf("1900") >= 0) return DBNull.Value;
                if (FormatHourFM)
                    return Convert.ToDateTime(source).ToString("yyyy-MM-dd HH:mm:ss");
                else
                    return Convert.ToDateTime(source).ToString("yyyy-MM-dd");
            }
            catch (Exception)
            {
                if(is_Error)
                    throw new Exception("日期格式错误") ;
                else return DBNull.Value;
            }
        }
        /// <summary>
        /// 转换日期时间 插入数据库 返回带引号的日期【null不带引号】,调用前如:ctdate={1}
        /// </summary>
        /// <param name="source"></param>
        /// <param name="FormatHourFM">格式化时间,或者只是日期</param>
        /// <param name="is_Error">是否抛出异常,或者返回DBNull</param>
        /// <returns></returns>
        public static object is_ToDate_NullStr(this string source, bool FormatHourFM = true, bool is_Error = false)
        {
            try
            {
                if (source == null) return "null";
                if (source.ToSQLString() == "") return "null";
                if (source.ToSQLString().IndexOf("1900") >= 0) return "null";
                if (FormatHourFM)
                    return "'"+ Convert.ToDateTime(source).ToString("yyyy-MM-dd HH:mm:ss") + "'";
                else
                    return "'" + Convert.ToDateTime(source).ToString("yyyy-MM-dd") + "'"; 
            }
            catch (Exception)
            {
                if (is_Error)
                    throw new Exception("日期格式错误");
                else return DBNull.Value;
            }
        }

        /// <summary>
        /// 判断是不是数字 ,如果不是返回0
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static int isToBool_Int(this Object source)
        {
            return source.ToString() == "是" ? 1 : 0;
        }

        /// <summary>
        /// 取字符串 右边位数
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string ToRightString(this string source, int len)
        {
            if (source == null) return "";
            //if (source.ToString() == "") return "";
            return source.Substring(source.Length - len);
        }
        /// <summary>
        /// 取字符串 右边位数  补0
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string ToString_Add0(this Object source, int len)
        {
            string rtnStr = "";
            if (source == null) return "";
            //if (source.ToString() == "") return "";
            rtnStr = ("000000" + source);
            return rtnStr.Substring(rtnStr.Length - len);
        }

        public static byte[] ToByteArray(this Object source)
        {
            if (source == null) return null;
            if (typeof(System.String).Equals(source.GetType()))
            {
                return Convert.FromBase64String(source.ToString());
            }
            else
            {
                if (Convert.IsDBNull(source))
                {
                    return null;
                }
                else
                {
                    return (byte[])source;
                }
            }
        }

    }
}

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号