zoukankan      html  css  js  c++  java
  • .NET开发中你可能会用到的常用方法总结

    学习.NET有一些时间了,平日积累了一些自己认为比较实用的方法(有自己写的,也有学习别人的),可能会在不同的项目开发中使用到。分享给大家,有什么好的方法还会不断添加,个别方法你可能认为很菜,仅提供给新手。当然,实现功能的方法并不唯一,这里仅供大家参考。

    将文件转换成字符串,常用于读取网站模板

    1 /// <summary>
    2 /// 将文件转换成字符串,常用于读取网站模板
    3 /// </summary>
    4 /// <param name="path"></param>
    5 /// <param name="isSpace"></param>
    6 /// <returns></returns>
    7   public static string GetTempleContent(string path)
    8 {
    9 string result = string.Empty;
    10 string sFileName = HttpContext.Current.Server.MapPath(path);
    11 if (File.Exists(sFileName))
    12 {
    13 try
    14 {
    15 using (StreamReader sr = new StreamReader(sFileName))
    16 {
    17 result = sr.ReadToEnd();
    18 }
    19 }
    20 catch
    21 {
    22 result = "读取模板文件(" + path + ")出错";
    23 }
    24 }
    25 else
    26 {
    27 result = "找不到模板文件:" + path;
    28 }
    29 return result;
    30 }

    读取,添加,修改xml文件

    Code
    /// <summary>
        /// 读取,添加,修改xml文件
        /// </summary>
        /// <param name="Xmlpath">Xml路径</param>
        /// <param name="Node">新的子节点名称</param>
        /// <param name="Value">新节点对应的值</param>
        /// <param name="flag">1:读取,否则为 修改或者添加</param>
        /// <returns>1:修改添加成功,为空字符串表示修改添加成功,否则是读取成功</returns>
        public static string getXML(string Xmlpath, string Node, string Value, int flag)
        {
            try
            {
                string filepath = HttpContext.Current.Server.MapPath(Xmlpath);
                XmlDocument xmlDoc = new XmlDocument();
                if (!File.Exists(filepath))
                {
                    XmlDeclaration xn = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
                    XmlElement root = xmlDoc.CreateElement("rss");
                    XmlElement root1 = xmlDoc.CreateElement("item");

                    root.AppendChild(root1);
                    xmlDoc.AppendChild(xn);
                    xmlDoc.AppendChild(root);
                    xmlDoc.Save(filepath);//本地路径名字
                }
                xmlDoc.Load(filepath);//你的xml文件
                string ReStr = string.Empty;
                XmlElement xmlObj = xmlDoc.DocumentElement;

                XmlNodeList xmlList = xmlDoc.SelectSingleNode(xmlObj.Name.ToString()).ChildNodes;

                foreach (XmlNode xmlNo in xmlList)
                {
                    if (xmlNo.NodeType != XmlNodeType.Comment)//判断是不是注释类型
                    {
                        XmlElement xe = (XmlElement)xmlNo;
                        {
                            if (xe.Name == xmlObj.FirstChild.Name)
                            {
                                XmlNodeList xmlNList = xmlObj.FirstChild.ChildNodes;

                                foreach (XmlNode xmld in xmlNList)
                                {
                                    XmlElement xe1 = (XmlElement)xmld;
                                    {
                                        if (xe1.Name == Node)
                                        {
                                            if (flag == 1)//读取值
                                            {
                                                if (xmld.InnerText != null && xmld.InnerText != "")
                                                {
                                                    ReStr = xmld.InnerText;
                                                }
                                            }
                                            else//修改值
                                            {
                                                xmld.InnerText = Value;//给节点赋值
                                                xmlDoc.Save(filepath);
                                                ReStr = Value.Trim();
                                            }
                                        }
                                    }
                                }
                                if (ReStr == string.Empty)// 添加节点
                                {
                                    XmlNode newNode;
                                    newNode = xmlDoc.CreateNode("element", Node, Value);//创建节点
                                    newNode.InnerText = Value;//给节点赋值
                                    xe.AppendChild(newNode);//把节点添加到doc
                                    xmlDoc.Save(filepath);
                                    ReStr = Value.Trim();
                                }
                            }
                        }
                    }
                }
                return ReStr;
            }
            catch
            {
                return string.Empty;
            }
        }

    取得文件扩展名

    Code
    /// <summary>
        /// 取得文件扩展名
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <returns>扩展名</returns>
        public static string GetFileEXT(string filename)
        {
            if (string.IsNullOrEmpty(filename))
            {
                return "";
            }
            if (filename.IndexOf(@".") == -1)
            {
                return "";
            }
            int pos = -1;
            if (!(filename.IndexOf(@"\") == -1))
            {
                pos = filename.LastIndexOf(@"\");
            }
            string[] s = filename.Substring(pos + 1).Split('.');
            return s[1];
        }

    替换文本中的空格和换行

    Code
    /// <summary>
        /// 替换文本中的空格和换行
        /// </summary>
        public static string ReplaceSpace(string str)
        {
            string s = str;
            s = s.Replace(" ", "&nbsp;");
            s = s.Replace("\n", "<BR />");
            return s;
        }

    验证码实现方法

    Code
        protected void Page_Load(object sender, EventArgs e)
        {
             string checkCode = CreateRandomCode(4);
              Session["CheckCode"] = checkCode;
              CreateImage(checkCode);
        }
         private string CreateRandomCode(int codeCount)
        {

            // 函数功能:产生数字和字符混合的随机字符串
            string allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            char[] allCharArray = allChar.ToCharArray();
            string randomCode = "";
            Random rand = new Random();
            for (int i = 0; i < codeCount; i++)
            {
               int r=rand.Next(61);
               randomCode+=allCharArray.GetValue(r);
            }
             return randomCode;
            
         }
             

        private void CreateImage(string checkCode)
        {

            // 生成图象验证码函数
           int iwidth = (int)(checkCode.Length * 11.5);
            System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
            Graphics g = Graphics.FromImage(image);
            Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold);
            Brush b = new System.Drawing.SolidBrush(Color.Azure);//字母白色
            //g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
            g.Clear(Color.Brown);//背景灰色
            g.DrawString(checkCode, f, b, 3, 3);

            Pen blackPen = new Pen(Color.Black, 0);
            Random rand = new Random();
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            Response.ClearContent();
            Response.ContentType = "image/Jpeg";
            Response.BinaryWrite(ms.ToArray());
            g.Dispose();
            image.Dispose();
        }

    文件创建、复制、移动、删除

    Code
    FileStream fs;
     //创建文件
     fs = File.Create(Server.MapPath("a.txt"));
     fs.Close();
     fs = File.Create(Server.MapPath("b.txt"));
     fs.Close();
     fs = File.Create(Server.MapPath("c.txt"));
     fs.Close();
     //复制文件
     File.Copy(Server.MapPath("a.txt"), Server.MapPath("a\\a.txt"));
     //移动文件
     File.Move(Server.MapPath("b.txt"), Server.MapPath("a\\b.txt"));
     File.Move(Server.MapPath("c.txt"), Server.MapPath("a\\c.txt"));
     //删除文件
     File.Delete(Server.MapPath("a.txt"));

    去掉结尾,

    Code
    /// <summary>
        /// 去掉结尾,
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string LostDot(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                return string.Empty;
            }
            else
            {
                if (input.IndexOf(",") > -1)
                {
                    int intLast = input.LastIndexOf(",");
                    if ((intLast + 1) == input.Length)
                    {
                        return input.Remove(intLast);
                    }
                    else
                    {
                        return input;
                    }
                }
                else
                {
                    return input;
                }
            }
        }

    生成任意位数的随机数

    Code
    /// <summary>
        /// 生成随机数
        /// </summary>
        /// <param name="minValue">最小值</param>
        /// <param name="maxValue">最大值</param>
        /// <returns></returns>
        private int getRandom(int minValue, int maxValue)
        {
            Random ri = new Random(unchecked((int)DateTime.Now.Ticks));
            int k = ri.Next(minValue, maxValue);
            return k;
        }

    //想定一个三位的随机数:string ThreeRandom=this.getRandom(100,999).Tostring();
    //类似的,四位随机数:string FourRandom=this.getRandom(1000,9999).Tostring();

    实现文件的上传

    Code
    public class Upload
        {
            private System.Web.HttpPostedFile postedFile = null;
            private string savePath = "";
            private string extension = "";
            private int fileLength = 0;
            private string filename = "";
            /// <summary>
            /// 上传组件
            /// </summary>
            public System.Web.HttpPostedFile PostedFile
            {
                get
                {
                    return postedFile;
                }
                set
                {
                    postedFile = value;
                }
            }
            /// <summary>
            /// 保存路径
            /// </summary>
            public string SavePath
            {
                get
                {
                    if (savePath != "") return savePath;
                    return "c:\\";
                }
                set
                {
                    savePath = value;
                }
            }
            /// <summary>
            /// 文件大小
            /// </summary>
            public int FileLength
            {
                get
                {
                    if (fileLength != 0) return fileLength;
                    return 1024;
                }
                set
                {
                    fileLength = value * 1024;
                }
            }
            /// <summary>
            /// 文件护展名
            /// </summary>
            public string Extension
            {
                get
                {
                    if (extension != "")
                        return extension;
                    return "txt";
                }
                set
                {
                    extension = value;
                }
            }
            /// <summary>
            /// 文件名
            /// </summary>
            public string FileName
            {
                get
                {
                    return filename;
                }
                set
                {
                    filename = value;
                }
            }
            public string PathToName(string path)
            {
                int pos = path.LastIndexOf(@"\");
                return path.Substring(pos + 1);
            }
            /// <summary>
            /// 上传文件
            /// </summary>
            /// <returns></returns>
            public string UploadStart()
            {
                bool tf = false;
                string returnvalue = "";
                if (PostedFile != null)
                {
                    try
                    {
                        string fileName = PathToName(PostedFile.FileName);
                        if (filename != "")
                        {
                            fileName = filename;
                        }
                        string _fileName = "";

                        string[] Exten = Extension.Split(',');
                        if (Exten.Length == 0)
                        {
                            returnvalue = "你未设置上传文件类型,系统不允许进行下一步操作!";
                        }
                        else
                        {
                            for (int i = 0; i < Exten.Length; i++)
                            {
                                if (fileName.ToLower().EndsWith(Exten[i].ToLower()))
                                {
                                    if (PostedFile.ContentLength > FileLength)
                                    {
                                        returnvalue = "上传文件限制大小:" + FileLength / 1024 + "kb!";
                                    }
                                    string IsFileex = SavePath + @"\" + fileName;
                                    if (!Directory.Exists(SavePath)) { Directory.CreateDirectory(SavePath); }
                                    PostedFile.SaveAs(IsFileex);
                                    _fileName = fileName;
                                    tf = true;
                                    returnvalue = IsFileex ;
                                }
                            }
                            if (tf == false)
                                returnvalue = "只允许上传" + Extension + " 文件!";
                        }
                    }
                    catch (System.Exception exc)
                    {
                        returnvalue = exc.Message;
                    }
                }
                else
                {
                    returnvalue = "上文件失败!";
                }
                return returnvalue;
            }
        }

    判断输入是否为日期类型

    Code
     /// <summary>
            /// 判断输入是否为日期类型
            /// </summary>
            /// <param name="s">待检查数据</param>
            /// <returns></returns>
            public static bool IsDate(string s)
            {
                if (s == null)
                {
                    return false;
                }
                else
                {
                    try
                    {
                        DateTime d = DateTime.Parse(s);
                        return true;
                    }
                    catch
                    {
                        return false;
                    }
                }
            }

    MD5加密字符串处理

    Code
    /// <summary>
            /// MD5加密字符串处理
            /// </summary>
            /// <param name="Half">加密是16位还是32位;如果为true为16位</param>
            public static string MD5(string Input, bool Half)
            {
                string output = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(Input, "MD5").ToLower();
                if (Half) output = output.Substring(8, 16);
                return output;
            }

            public static string MD5(string Input)
            {
                return MD5(Input, true);
            }

    过滤非法字符,防止注入式攻击等

    Code
    /// <summary>
            /// 过滤字符
            /// </summary>
            public static string Filter(string sInput)
            {
                if (sInput == null || sInput.Trim() == string.Empty)
                    return null;
                string sInput1 = sInput.ToLower();
                string output = sInput;
                string pattern = @"*|and|exec|insert|select|delete|update|count|master|truncate|declare|char(|mid(|chr(|'";
                if (Regex.Match(sInput1, Regex.Escape(pattern), RegexOptions.Compiled | RegexOptions.IgnoreCase).Success)
                {
                    throw new Exception("字符串中含有非法字符!");
                }
                else
                {
                    output = output.Replace("'", "''");
                }
                return output;
            }

    常用的加密解密(DES,RSA)

    Code
        using System.Security.Cryptography;
    using System.Text;

        /// <summary>
        /// DES加密
        /// </summary>
        /// <param name="input">待加密的字符串</param>
        /// <param name="key">加密密钥</param>
        /// <returns></returns>
        public static string Encrypt(string EncryptString, byte[] Key, byte[] IV)
        {
            //byte[] rgbKey = Encoding.UTF8.GetBytes(key.Substring(0, 8));
            byte[] inputByteArray = Encoding.UTF8.GetBytes(EncryptString);
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            MemoryStream mStream = new MemoryStream();
            CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
            cStream.Write(inputByteArray, 0, inputByteArray.Length);
            cStream.FlushFinalBlock();
            return Convert.ToBase64String(mStream.ToArray());
        }
        /// <summary>
        /// DES解密
        /// </summary>
        /// <param name="input">待解密的字符串</param>
        /// <param name="key">解密密钥,要求为8位,和加密密钥相同</param>
        /// <returns>解密成功返回解密后的字符串,失败返源串</returns>
        public static string Decrypt(string DecryptString, byte[] Key, byte[] IV)
        {
            try
            {
                //byte[] rgbKey = Encoding.UTF8.GetBytes(Key);
                byte[] inputByteArray = Convert.FromBase64String(DecryptString);
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();

                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(Key, IV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                return Encoding.UTF8.GetString(mStream.ToArray());
            }
            catch
            {
                return "";
            }
        }
    }
    /// <summary>
    /// RSA加解密算法
    /// </summary>
    public class RSA
    {
        /// <summary>
        /// RSA加密函数
        /// </summary>
        /// <param name="xmlPublicKey">说明KEY必须是XML的行式,返回的是字符串</param>
        /// <param name="EncryptString"></param>
        /// <returns></returns>
        public string Encrypt(string xmlPublicKey, string EncryptString)
        {
            byte[] PlainTextBArray;
            byte[] CypherTextBArray;
            string Result;
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(xmlPublicKey);
            PlainTextBArray = (new UnicodeEncoding()).GetBytes(EncryptString);
            CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
            Result = Convert.ToBase64String(CypherTextBArray);
            return Result;
        }
        /// <summary>
        /// RSA解密函数
        /// </summary>
        /// <param name="xmlPrivateKey"></param>
        /// <param name="DecryptString"></param>
        /// <returns></returns>
        public string Decrypt(string xmlPrivateKey, string DecryptString)
        {
            byte[] PlainTextBArray;
            byte[] DypherTextBArray;
            string Result;
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(xmlPrivateKey);
            PlainTextBArray = Convert.FromBase64String(DecryptString);
            DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
            Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
            return Result;
        }

        /// <summary>
        /// 产生RSA的密钥
        /// </summary>
        /// <param name="xmlKeys">私钥</param>
        /// <param name="xmlPublicKey">公钥</param>
        public void RSAKey(out string xmlKeys, out string xmlPublicKey)
        {
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            xmlKeys = rsa.ToXmlString(true);
            xmlPublicKey = rsa.ToXmlString(false);
        }

    写入读取Cookie值

    Code
    /// <summary>
            /// 写cookie值
            /// </summary>
            /// <param name="strName">名称</param>
            /// <param name="strValue">值</param>
            /// <param name="strValue">过期时间(分钟)</param>
            public static void WriteCookie(string strName, string strValue, int expires)
            {
                HttpCookie cookie = HttpContext.Current.Request.Cookies[strName];
                if (cookie == null)
                {
                    cookie = new HttpCookie(strName);
                }
                cookie.Value = strValue;
                cookie.Expires = DateTime.Now.AddMinutes(expires);
                HttpContext.Current.Response.AppendCookie(cookie);
            }
            /// <summary>
            /// 读cookie值
            /// </summary>
            /// <param name="strName">名称</param>
            /// <returns>cookie值</returns>
            public static string GetCookie(string strName)
            {
                if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
                {
                    return HttpContext.Current.Request.Cookies[strName].Value.ToString();
                }
                return "";
            }

    读取配置文件的节点内容

    Code
    /// <summary>
            /// 读取配置文件
            /// </summary>
            /// <param name="Target"></param>
            /// <param name="ConfigPathName"></param>
            /// <returns></returns>
            static internal string GetConfigValue(string Target, string XmlPath)
            {
                System.Xml.XmlDocument xdoc = new XmlDocument();
                xdoc.Load(XmlPath);
                XmlElement root = xdoc.DocumentElement;
                XmlNodeList elemList = root.GetElementsByTagName(Target);
                return elemList[0].InnerXml;
            }

    取单个字符的拼音声母

    Code
    /// <summary> 
            /// 取单个字符的拼音声母 
            /// </summary> 
            /// <param name="c">要转换的单个汉字</param> 
            /// <returns>拼音声母</returns> 
            private static string GetPYChar(string c)
            {
                byte[] array = new byte[2];
                array = System.Text.Encoding.Default.GetBytes(c);
                int i = (short)(array[0] - '\0') * 256 + ((short)(array[1] - '\0'));
                if (i < 0xB0A1) return "*";
                if (i < 0xB0C5) return "A";
                if (i < 0xB2C1) return "B";
                if (i < 0xB4EE) return "C";
                if (i < 0xB6EA) return "D";
                if (i < 0xB7A2) return "E";
                if (i < 0xB8C1) return "F";
                if (i < 0xB9FE) return "G";
                if (i < 0xBBF7) return "H";
                if (i < 0xBFA6) return "G";
                if (i < 0xC0AC) return "K";
                if (i < 0xC2E8) return "L";
                if (i < 0xC4C3) return "M";
                if (i < 0xC5B6) return "N";
                if (i < 0xC5BE) return "O";
                if (i < 0xC6DA) return "P";
                if (i < 0xC8BB) return "Q";
                if (i < 0xC8F6) return "R";
                if (i < 0xCBFA) return "S";
                if (i < 0xCDDA) return "T";
                if (i < 0xCEF4) return "W";
                if (i < 0xD1B9) return "X";
                if (i < 0xD4D1) return "Y";
                if (i < 0xD7FA) return "Z";
                return "*";
            }

    变量.ToString()

    Code
       //字符型转换 转为字符串  
       12345.ToString("n");        //生成   12,345.00  
       12345.ToString("C");        //生成 ¥12,345.00  
       12345.ToString("e");        //生成 1.234500e+004  
       12345.ToString("f4");        //生成 12345.0000  
       12345.ToString("x");         //生成 3039  (16进制)  
       12345.ToString("p");         //生成 1,234,500.00%  

    时间的处理

    Code
    DateTime dt = DateTime.Now;
    Label1.Text = dt.ToString();//2005-11-5 13:21:25
    Label2.Text = dt.ToFileTime().ToString();//127756416859912816
    Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816
    Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25
    Label5.Text = dt.ToLongDateString().ToString();//2005年11月5日
    Label6.Text = dt.ToLongTimeString().ToString();//13:21:25
    Label7.Text = dt.ToOADate().ToString();//38661.5565508218
    Label8.Text = dt.ToShortDateString().ToString();//2005-11-5
    Label9.Text = dt.ToShortTimeString().ToString();//13:21
    Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
    ?2005-11-5 13:30:28.4412864
    Label1.Text = dt.Year.ToString();//2005
    Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00
    Label3.Text = dt.DayOfWeek.ToString();//Saturday
    Label4.Text = dt.DayOfYear.ToString();//309
    Label5.Text = dt.Hour.ToString();//13
    Label6.Text = dt.Millisecond.ToString();//441
    Label7.Text = dt.Minute.ToString();//30
    Label8.Text = dt.Month.ToString();//11
    Label9.Text = dt.Second.ToString();//28
    Label10.Text = dt.Ticks.ToString();//632667942284412864
    Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864
    Label1.Text = dt.ToString();//2005-11-5 13:47:04
    Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04
    Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
    Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
    Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
    Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04
    Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
    Label8.Text = dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
    Label9.Text = dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
    Label10.Text = dt.CompareTo(dt).ToString();//0
    //Label11.Text = dt.Add(?).ToString();//问号为一个时间段
    Label1.Text = dt.Equals("2005-11-6 16:11:04").ToString();//False
    Label2.Text = dt.Equals(dt).ToString();//True
    Label3.Text = dt.GetHashCode().ToString();//1474088234
    Label4.Text = dt.GetType().ToString();//System.DateTime
    Label5.Text = dt.GetTypeCode().ToString();//DateTime

    Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
    Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//14:06
    Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
    Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
    Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
    Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
    Label7.Text = dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
    Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11月5日
    Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
    Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
    Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT

    Label1.Text =? string.Format("{0:d}",dt);//2005-11-5
    Label2.Text =? string.Format("{0:D}",dt);//2005年11月5日
    Label3.Text =? string.Format("{0:f}",dt);//2005年11月5日 14:23
    Label4.Text =? string.Format("{0:F}",dt);//2005年11月5日 14:23:23
    Label5.Text =? string.Format("{0:g}",dt);//2005-11-5 14:23
    Label6.Text =? string.Format("{0:G}",dt);//2005-11-5 14:23:23
    Label7.Text =? string.Format("{0:M}",dt);//11月5日
    Label8.Text =? string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
    Label9.Text =? string.Format("{0:s}",dt);//2005-11-05T14:23:23
    Label10.Text = string.Format("{0:t}",dt);//14:23
    Label11.Text = string.Format("{0:T}",dt);//14:23:23
    Label12.Text = string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
    Label13.Text = string.Format("{0:U}",dt);//2005年11月5日 6:23:23
    Label14.Text = string.Format("{0:Y}",dt);//2005年11月
    Label15.Text = string.Format("{0}",dt);//2005-11-5 14:23:23?
    Label16.Text = string.Format("{0:yyyyMMddHHmmssffff}",dt); //yyyymm等可以设置,比如Label16.Text = string.Format("{0:yyyyMMdd}",dt);

    获得ip和mac地址

    Code
    using System.Runtime.InteropServices;

    [DllImport("Iphlpapi.dll")]
        private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
        [DllImport("Ws2_32.dll")]
        private static extern Int32 inet_addr(string ip);
        protected void Page_Load(object sender, EventArgs e)
        {
            
            // 在此处放置用户代码以初始化页面
            try
            {
                string userip = Request.UserHostAddress;
                string strClientIP = Request.UserHostAddress.ToString().Trim();
                Int32 ldest = inet_addr(strClientIP); //目的地的ip 
                Int32 lhost = inet_addr("");   //本地服务器的ip 
                Int64 macinfo = new Int64();
                Int32 len = 6;
                int res = SendARP(ldest, 0, ref macinfo, ref len);
                string mac_src = macinfo.ToString("X");
                if (mac_src == "0")
                {
                    if (userip == "127.0.0.1")
                        Response.Write("正在访问Localhost!");
                    else
                        Response.Write("欢迎来自IP为" + userip + "的朋友!" + "<br>");
                    return;
                }

                while (mac_src.Length < 12)
                {
                    mac_src = mac_src.Insert(0, "0");
                }

                string mac_dest = "";

                for (int i = 0; i < 11; i++)
                {
                    if (0 == (i % 2))
                    {
                        if (i == 10)
                        {
                            mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2));
                        }
                        else
                        {
                            mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2));
                        }
                    }
                }

                Response.Write("欢迎来自IP为" + userip + "<br>" + ",MAC地址为" + mac_dest + "的朋友!"

                 + "<br>");
            }
            catch (Exception err)
            {
                Response.Write(err.Message);
            }
        }


        private string GetClientIP()
        {
            string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (null == result || result == String.Empty)
            {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            } if (null == result || result == String.Empty)
            {
                result = HttpContext.Current.Request.UserHostAddress;
            }
            return result;
        }

    调用Win32 Api函数,非托管DLL

    Code
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    namespace NetMeeting.API
    {
      public class Win32
      {
        [DllImport("user32.dll", EntryPoint = "MessageBox", ExactSpelling = false)]
        public static extern int MessageBox(int hWnd, string text, string caption, uint type);
      }
    }
    //客户调用:

    using System;
    using NetMeeting.API;
    class test
    {
      public static void Main(string[] agrs)
      {
          Win32.MessageBox(0,"hello ,this is a c# invoke win32 api","test",2);
      }
    }

    生成高质量缩略图

    Code
    //方法1
    public static Bitmap CreateThumbnail(Bitmap source, int thumbWi, int thumbHi, bool maintainAspect)
            {
                // return the source image if it's smaller than the designated thumbnail
                if (source.Width < thumbWi && source.Height < thumbHi) return source;

                System.Drawing.Bitmap ret = null;
                try
                {
                    int wi, hi;

                    wi = thumbWi;
                    hi = thumbHi;

                    if (maintainAspect)
                    {
                        // maintain the aspect ratio despite the thumbnail size parameters
                        if (source.Width > source.Height)
                        {
                            wi = thumbWi;
                            hi = (int)(source.Height * ((decimal)thumbWi / source.Width));
                        }
                        else
                        {
                            hi = thumbHi;
                            wi = (int)(source.Width * ((decimal)thumbHi / source.Height));
                        }
                    }

                    // original code that creates lousy thumbnails
                    // System.Drawing.Image ret = source.GetThumbnailImage(wi,hi,null,IntPtr.Zero);
                    ret = new Bitmap(wi, hi);
                    using (Graphics g = Graphics.FromImage(ret))
                    {
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        g.FillRectangle(Brushes.White, 0, 0, wi, hi);
                        g.DrawImage(source, 0, 0, wi, hi);
                    }
                }
                catch
                {
                    ret = null;
                }

                return ret;
            }
    //调用
     using (Graphics g = Graphics.FromImage(ret))
                    {
                        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        g.FillRectangle(Brushes.White, 0, 0, wi, hi);
                        g.DrawImage(source, 0, 0, wi, hi);
                    }

    将文件保存到数据库中

    Code
    //保存文件到SQL Server数据库中
        private void FileToSql(string fileName,string tableName,string fieldName)
        {
            SqlConnection cn=new SqlConnection ();
            FileInfo fi=new FileInfo(fileName);
            FileStream fs=fi.OpenRead();
            byte[] bytes=new byte[fs.Length];
            fs.Read(bytes,0,Convert.ToInt32(fs.Length));
            SqlCommand cm=new SqlCommand();
            cm.Connection=cn;
            cm.CommandType=CommandType.Text;
            if(cn.State==0) cn.Open();
            cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
            SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
            spFile.Value=bytes;
            cm.Parameters.Add(spFile);
            cm.ExecuteNonQuery();
        }
    //保存文件到Access数据库中
        private void FileToAccess(string fileName,string tableName,string fieldName)
        {
            OleDbConnection cn=new OleDbConnection ();
            FileInfo fi=new FileInfo(fileName);
            FileStream fs=fi.OpenRead();
            byte[] bytes=new byte[fs.Length];
            fs.Read(bytes,0,Convert.ToInt32(fs.Length));
            OleDbCommand cm=new OleDbCommand();
            cm.Connection=cn;
            cm.CommandType=CommandType.Text;
            if(cn.State==0) cn.Open();
            cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
            OleDbParameter spFile=new OleDbParameter("@file",OleDbType.Binary);
            spFile.Value=bytes;
            cm.Parameters.Add(spFile);
            cm.ExecuteNonQuery();
        }
        //保存客户端文件到数据库,fl_name为上传控件
        private void FileToDataSourse(string mailid)
        {
            string ConnStr = "";
            string sql = "update t_mail set attachfilename=@attachfilename,attachfile=@attachfile where mailid=" + mailid;
            SqlCommand myCommand = new SqlCommand(sql, new SqlConnection(ConnStr));
            string path = fl_name.PostedFile.FileName;
            string filename = path.Substring(path.LastIndexOf("") + 1, path.Length - path.LastIndexOf("") - 1);
            myCommand.Parameters.Add("@attachfilename", SqlDbType.VarChar);
            myCommand.Parameters["@attachfilename"].Value = filename;
            myCommand.Parameters.Add("@attachfile", SqlDbType.Image);
            Stream fileStream = fl_name.PostedFile.InputStream;
            int intFileSize = fl_name.PostedFile.ContentLength;
            byte[] fileContent = new byte[intFileSize];
            int intStatus = fileStream.Read(fileContent, 0, intFileSize); //文件读取到fileContent数组中
            myCommand.Parameters["@attachfile"].Value = ((byte[])fileContent);
            fileStream.Close();
            myCommand.Connection.Open();
            myCommand.ExecuteNonQuery();
            myCommand.Connection.Close();
        }

    将用户输入的字符串转换为可换行、替换Html编码、无危害数据库特殊字符、去掉首尾空白、的安全方便代码

    Code
    public static string ConvertStr(string inputString)
            {
                string retVal = inputString;
                retVal = retVal.Replace("&", "&amp;");
                retVal = retVal.Replace("\"", "&quot;");
                retVal = retVal.Replace("<", "&lt;");
                retVal = retVal.Replace(">", "&gt;");
                retVal = retVal.Replace(" ", "&nbsp;");
                retVal = retVal.Replace("  ", "&nbsp;&nbsp;");
                retVal = retVal.Replace("\t", "&nbsp;&nbsp;");
                retVal = retVal.Replace("\r", "<br>");
                return retVal;
            }

            private static string FetchURL(string strMessage)
            {
                string strPattern = @"(?<url>(http|ftp|mms|rstp|news|https)://(?:[\w-]+\.)+[\w-]+(?:/[\w-./?%&~=]*[^.\s|,|\)|<|!])?)";
                string strReplace = "<a href=\"${url}\" target=_blank>${url}</a>";
                string strInput = strMessage;
                string strResult;
                strResult = Regex.Replace(strInput, strPattern, strReplace);
                strPattern = @"(?<!http://)(?<url>www\.(?:[\w-]+\.)+[\w-]+(?:/[\w-./?%&~=]*[^.\s|,|\)|<|!])?)";
                strReplace = "<a href=\"http://${url}\" target=_blank>${url}</a>";
                strResult = Regex.Replace(strResult, strPattern, strReplace);
                return strResult;
            } 

            public string ToUrl(string inputString)
            {
                string retVal = inputString;
                retVal = ConvertStr(retVal);
                retVal = FetchURL(retVal);
                return retVal;
            }

    ASP.NET获取服务器信息方法

    Code

    ASP.NET获取客户端信息

    Code

     C#实现页面加载

    Code

     Http请求图片显示:

    Code

    通过文件流判断文件编码:

    Code
  • 相关阅读:
    oracle函数 TO_DATE(X[,c2[,c3]])
    oracle函数 TO_CHAR(x[[,c2],C3])
    oracle函数 RAWTOHEX(c1)
    oracle HEXTORAW(c1)
    oracle函数 CONVERT(c1,set1,set2)
    oracle函数 ROWIDTOCHAR(rowid)
    oracle函数 chartorowid(c1)
    创建可按比例调整的布局的 Windows 窗体
    A Byte of Python(简明Python教程) for Python 3.0 下载
    使用异步事件在后台进行计算并报告进度
  • 原文地址:https://www.cnblogs.com/bingyun84/p/1931023.html
Copyright © 2011-2022 走看看