ASP.NET里公用的一些方法

 

///<summary>

    ///公共的方法

    ///</summary>

    public class PubFun

    {

        protected DB db = new DB();

        ///<summary>

        ///根据某一唯一条件获取另一字段的值

        ///</summary>

        ///<param name="strField">要获取的字段名称</param>

        ///<param name="condition">查讯条件</param>

        ///<param name="table">表名</param>

        ///<returns>返回string</returns>

        public string GetStrByID(string strField, string condition, string table)

        {

            db.DBOpen();

            SqlCommand cmd1 = new SqlCommand();

            cmd1.Connection = db.strConn;

            cmd1.CommandText = "procGetStrByID";

            cmd1.CommandType = CommandType.StoredProcedure;

            cmd1.Parameters.AddWithValue("@field", strField);

            cmd1.Parameters.AddWithValue("@condition", condition);

            cmd1.Parameters.AddWithValue("@table", table);

            string str2show=string.Empty;

            if (cmd1.ExecuteScalar() != null)

            {

                str2show = cmd1.ExecuteScalar().ToString();

            }

            db.DBClose();

            return str2show;

        }

        ///<summary>

        ///判断是否为数字

        ///</summary>

        ///<param name="expression">输入的string值</param>

        ///<returns>返回布尔值</returns>

        public bool IsNumber(string expression)

        {

            if (expression.Trim().Length == 0)

            {

                return false;

            }

            expression = expression.Trim();

            bool hasDecimal = false;

            int startIdx = 0;

            if (expression.StartsWith("-"))

            {

                startIdx = 1;

            }

            for (int i = startIdx; i < expression.Length; i++)

            {

                // Check for decimal

                if (expression[i] == '.')

                {

                    if (hasDecimal) // 2nd decimal

                        return false;

                    else // 1st decimal

                    {

                        // inform loop decimal found and continue

                        hasDecimal = true;

                        continue;

                    }

                }

                // check if number

                if (!char.IsNumber(expression[i]))

                    return false;

            }

            return true;

        }

        ///<summary>

        ///判断是否为整形数字

        ///</summary>

        ///<param name="input">输入的Object</param>

        ///<returns></returns>

        public bool IsInt(object input)

        {

            bool boltmp = false;

            try

            {

                int i = Convert.ToInt32(input);

                boltmp = true;

            }

            catch

            {

                boltmp = false;

            }

            return boltmp;

        }

        ///<summary>

        ///过滤查询字符串

        ///</summary>

        ///<param name="args">输入的object对象</param>

        ///<returns>返回布尔值</returns>

        public bool CheckParams(params object[] args)

        {

            string[] Lawlesses ={ "=", "'" };

            if (Lawlesses == null || Lawlesses.Length <= 0) return true;

            //构造正则表达式,例:Lawlesses是=号和'号,则正则表达式为 .*[=}'].* (正则表达式相关内容请见MSDN)

            //另外,由于我是想做通用而且容易修改的函数,所以多了一步由字符数组到正则表达式,实际使用中,直接写正则表达式亦可;

            String str_Regex = ".*[";

            for (int i = 0; i < Lawlesses.Length - 1; i++)

                str_Regex += Lawlesses[i] + "|";

            str_Regex += Lawlesses[Lawlesses.Length - 1] + "].*";

            foreach (object arg in args)

            {

                if (arg is string)//如果是字符串,直接检查

                {

                    if (Regex.Matches(arg.ToString(), str_Regex).Count > 0)

                        return false;

                }

                else if (arg is ICollection)

                //如果是一个集合,则检查集合内元素是否字符串,是字符串,就进行检查

                {

                    foreach (object obj in (ICollection)arg)

                    {

                        if (obj is string)

                        {

                            if (Regex.Matches(obj.ToString(), str_Regex).Count > 0)

                                return false;

                        }

                    }

                }

            }

            return true;

        }

        ///<summary>

        ///截取标题字符串,并在末尾加...

        ///</summary>

        ///<param name="strInput">要截断的字符串</param>

        ///<param name="intLen">截断长度</param>

        ///<returns>返回新的字符串</returns>

        public string CutStr(string strInput, int intLen)

        {

            strInput = strInput.Trim();

            byte[] myByte = System.Text.Encoding.Default.GetBytes(strInput);

            if (myByte.Length > intLen)

            {

                //截取操作

                string resultStr = string.Empty;

                for (int i = 0; i < strInput.Length; i++)

                {

                    byte[] tempByte = System.Text.Encoding.Default.GetBytes(resultStr);

                    if (tempByte.Length < intLen - 2)

                    {

                        resultStr += strInput.Substring(i, 1);

                    }

                    else

                    {

                        break;

                    }

                }

                return resultStr + "...";

            }

            else

            {

                return strInput;

            }

        }

        ///<summary>

        ///根据无参数的存储过程生成Dataset,并可对其中某字段进行截断

        ///</summary>

        ///<param name="ProcName">存储过程名称</param>

        ///<param name="cutField">要截断的字段</param>

        ///<param name="cutlen">截断长度</param>

        ///<returns></returns>

        public DataSet FillDatasetFromSP(string ProcName, string cutField, int cutlen)

        {

            db.DBOpen();

            SqlCommand cmd1 = new SqlCommand();

            cmd1.Connection = db.strConn;

            cmd1.CommandText = ProcName;

            cmd1.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter sda1 = new SqlDataAdapter(cmd1);

            DataSet ds1 = new DataSet();

            sda1.Fill(ds1);

            db.DBClose();

            CutStrFromDataSet(ds1, cutField, cutlen);

            return ds1;

        }

        ///<summary>

        ///修改替换DataSet中的列内容,如给标题进行截取

        ///</summary>

        ///<param name="ds">dataset名称</param>

        ///<param name="ColumnName">列名</param>

        ///<param name="intLen">截断字符数量</param>

        public void CutStrFromDataSet(DataSet ds, string ColumnName, int intLen)

        {

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)

            {

                ds.Tables[0].Rows[i][ColumnName] = CutStr(ds.Tables[0].Rows[i][ColumnName].ToString(), intLen);

            }

        }

        ///<summary>

        ///检查行是否存在

        ///</summary>

        ///<param name="table">要检查的表名</param>

        ///<param name="field">检查字段</param>

        ///<param name="sWhere">查讯条件</param>

        ///<returns>返回布尔值</returns>

        public bool RowsCheck(string table, string field, string sWhere)

        {

            db.DBOpen();

            string sSQL = "select " + field + " from " + table + " where " + sWhere;

            SqlCommand command = new SqlCommand(sSQL, db.strConn);

            SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleRow);

            bool booltemp = false;

            if (reader.Read())

            {

                booltemp = true;

            }

            db.DBClose();

            return booltemp;

        }

        ///<summary>

        ///判断字符串中某一段是否为整数型

        ///</summary>

        ///<param name="inputstr">输入的字符串</param>

        ///<param name="start">开始位置,由0始</param>

        ///<param name="len">长度</param>

        ///<returns></returns>

        public bool CheckStrIsInt(string inputstr, int start, int len)

        {

            int tmp;

            try

            {

                tmp = Convert.ToInt32(inputstr.Substring(start, len));

                return true;

            }

            catch

            {

                return false;

            }

        }

        ///<summary>

        ///获得某一字段的最大值加1

        ///</summary>

        ///<param name="field">字段名</param>

        ///<param name="table">表名</param>

        ///<param name="condition">查讯条件</param>

        ///<returns>返回最大值的string</returns>

        public string GetMaxValueAdd1(string field, string table, string condition)

        {

            string strSQL = string.Format("select max({0})+1 from {1} where {2}", field, table, condition);

            db.DBOpen();

            SqlCommand cmd = new SqlCommand(strSQL, db.strConn);

            string tmpstr = cmd.ExecuteScalar().ToString();

            db.DBClose();

            return tmpstr;

        }

        public int GetMaxIntValue(string field, string table, string condition)

        {

            if (condition != null)

            {

                if (condition.Length != 0)

                {

                    condition = "where " + condition;

                }

                else

                    condition = string.Empty;

            }

            string strSQL = string.Format("select max({0}) from {1} {2}", field, table, condition);

            db.DBOpen();

            SqlCommand cmd = new SqlCommand(strSQL, db.strConn);

            object tmpstr = cmd.ExecuteScalar();

            db.DBClose();

            return (int)tmpstr;

        }

        ///<summary>

        ///计算数据表符合某一条件的行的数量

        ///</summary>

        ///<param name="TableName">表名称</param>

        ///<param name="Query">条件</param>

        ///<returns></returns>

        public int GetRowsNum(string TableName, string Query)

        {

            string selectString = "select count(*) from " + TableName + "";

            if (Query != string.Empty && Query != null)

            {

                selectString += " where " + Query + "";

            }

            db.DBOpen();

            SqlCommand cmd = new SqlCommand(selectString, db.strConn);

            int rowsnum = (int)cmd.ExecuteScalar();

            cmd.Connection.Close();

            db.DBClose();

            return rowsnum;

        }

        ///<summary>

       ///删除表中的某一行数据

        ///</summary>

        ///<param name="TableName">表名</param>

        ///<param name="condition">条件</param>

        public void DelRow(string TableName, string condition)

        {

            db.DBOpen();

            string selectString;

            selectString = "delete from " + TableName + " where " + condition + "";

            db.Execute(selectString);

            db.DBClose();

        }

        ///<summary>

        ///根据整数生成**元/**万元类型的金额字符串

        ///</summary>

        ///<param name="InputMoney">金额</param>

        ///<returns></returns>

        public string ToMoneyChar(int InputMoney)

        {

            string strtmp = string.Empty;

            if (InputMoney < 10000)

                strtmp = InputMoney.ToString() + "元";

            else

                strtmp = (Convert.ToDouble(InputMoney) / 10000) + "万元";

            return strtmp;

        }

        ///<summary>

        ///把1.0等转换为布尔值

        ///</summary>

        ///<param name="inputchar">要转换的值</param>

        ///<param name="typecode">转换类型</param>

        ///<returns></returns>

        public bool Char2Bool(object inputchar, System.TypeCode typecode)

        {

            bool isTmp = false;

            if (typecode == System.TypeCode.Byte)

            {

                if (inputchar.ToString() == "1")

                    isTmp = true;

                else

                    isTmp = false;

            }

            return isTmp;

        }

        ///<summary>

        ///生成一个随机的16位数字字母字符串

        ///</summary>

        ///<returns></returns>

        public string CreateRandomString()

        {

            int Ran, Len;

            Len = 16;

            string pwdchars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

            string createpass = "";

            Random rnd = new Random();

            for (int i = 0; i < Len; i++)

            {

                Ran = rnd.Next(pwdchars.Length);

                createpass += pwdchars[Ran];

            }

            return createpass;

        }

    }

    ///<summary>

    ///动网论坛相关类

    ///</summary>

    public class DVBBS

    {

        ///<summary>

        ///用动网的MD5加密方法对密码加密

        ///</summary>

        ///<param name="input">要加密的字符串</param>

        ///<returns>返回加密后md5码中间16位</returns>

        public string MD5(string input)

        {

            StringBuilder sb1 = new StringBuilder();

            sb1.Append(FormsAuthentication.HashPasswordForStoringInConfigFile(input, "MD5"));

            sb1.Remove(0, 8);

            sb1.Remove(16, 8);

            string strtmp = sb1.ToString().ToLower();

            return strtmp;

        }

        ///<summary>

        ///根据标准MD5生成动网规则的密码

        ///</summary>

        ///<param name="inputmd5">输入标准32位MD5码</param>

        ///<returns>返回16位动网规则密码</returns>

        public string DVmd5(string inputmd5)

        {

            StringBuilder sb2 = new StringBuilder();

            sb2.Append(inputmd5);

            sb2.Remove(0, 8);

            sb2.Remove(16, 8);

            string strtmp = sb2.ToString().ToLower();

            return strtmp;

        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值