logo资料库

C# 方法大全(真的是挺全的了).doc

第1页 / 共107页
第2页 / 共107页
第3页 / 共107页
第4页 / 共107页
第5页 / 共107页
第6页 / 共107页
第7页 / 共107页
第8页 / 共107页
资料共107页,剩余部分请下载后查看
C#方法大全
正则表达式
WinRAR命令行
用C#创建Windows服务(Windows Services)
第一步:创建服务框架
第二步:向服务中增加功能
第三步: 将安装程序添加到服务应用程序
表到树(递归)
无限极分类表结构到树结构
Form
Web
过滤DataTable结果集,返回DataTable
闰年判断
字符串充当分隔符
替换字符串中的连续空格为1个空格
字符串转换XML
替换字符串中的连续空格为1个空格
手工创建datagrid的数据列
类:exDataGrid.cs
调用:
文件操作
Image 转 二进制
image to byte[]
byte[] to image
删除目标目录以及改目录下的所有子目录和文件
打开文件
修改文件夹下的所有文件名
MD5
加密
创建Key
MD5加密
MD5解密
读取appSettings节的键值
Web.Config文件结构
用AppSettingsReader读取
进制转
十进制转为二进制 十六进制 八进制
二进制 十六进制 八进制转为十进制
自动补零
C#常用代码
文件夹选择对话框
获取资源文件内容
获取硬盘序列号
禁止程序重复运行限制
文件操作
播放声音
补充:
加系统菜单
以下是程序:
此为资源文件生成器,支持二进制
程序,
C#常用函数和方法集
1、DateTime 数字型
1.1 取当前年月日时分秒
1.2 取当前年
1.3 取当前月
1.4 取当前日
1.5 取当前时
1.6 取当前分
1.7 取当前秒
1.8 取当前毫秒
2、Int32.Parse(变量) Int32.Parse('常量')
3、 变量.ToString()
4、变量.Length 数字型
5、System.Text.Encoding.Default.GetBytes(变量)
6、System.Text.StringBuilder('')
7、变量.Substring(参数1,参数2);
8、取远程用户IP地址
9、穿过代理服务器取远程用户真实IP地址:
10、 Session['变量'];
11、String str=Request.QueryString['变量'];
12、DOC对象.CreateElement('新建节点名');
13、父节点.AppendChild(子节点);
14、删除节点
15、Response
16、char.IsWhiteSpce(字串变量,位数)——逻辑型
17、char.IsPunctuation('字符') --逻辑型
18、(int)'字符'
19、(char)代码
20、Trim()
21、字串变量.Replace('子字串','替换为')
C#常用方法二
转全角的函数(SBC case)
转半角的函数(DBC case)
是否是数字
判断字符或字符串里是否有汉字
日期格式化
格式化显示日期方法
格式化显示日期方法
获得实际日期(用于保存数据)
MD5加密字符串
动态生成GUID
判断是否是数字(正整数)
根据传入字符串判断是否是数字(金额数字)
根据传入出生日期字符串判断当前年龄
返回固定长度的字符串
截取指定长度中英文字符串方
截取固定字符串
截取指定长度字符串(含盖半全角问题)
得到一个不重复的文件名
生成随机数(作为旅行社订单号)
随机数字组合成新的字符串
WinForm
浏览器控件
加载页面
给页面上的对象负值
自动提交页面上的表单
ASP.NET方法
动态为服务器控件添加属性值
取消缓存
客户端取消
服务器具端取消:
最简单的办法
配置错误跳转页面信息
JS树形菜单
第一步:把如下代码加入区域中
第二步:把如下代码加入区域中
控件定位
获取客户端IP
方法一
方法二
弹出JavaScript小窗口
弹出消息框并且转向到新的URL
回到历史页面
关闭当前窗口
打开指定大小的新窗体
转向Url指定的页面
打开指定大小位置的模式对话框
原窗口保留,另外新增一个新页面
页面嵌套
获取服务器的主机名
获取当前运行页面的服务器绝对路径
刷新页面
asp.net即时刷新页面
刷新页面一
刷新页面二
第一:
第二:
第三:
第四:
第五:(需替换<>)
第六:
点击按钮复制文本框内容
点击按钮,弹出确认执行对话框
点击按钮,弹出确认执行对话框
点击按钮,先执行客户端的判断,成功后在执行OnClick事件
ASP.NET 2.0防止同一用户同时登陆方法
在web 系统中,有些网站可能要求用户单一登录,不允许用同一帐号同时登录。
数据库中保存和读取图片
保存图片
读取图片
文件操作
删除文件夹下指定文件后缀的文件(保留文件夹结构)递归
上传压缩文件自动解压
客户端下载服务器文件
自动压缩文件夹,提供客户端下载
上传文件
方法
HTML页面代码
限制上传文件类型的两种方法
ASP.NET FileUp控件文件上传文件类型总结
使用asp.net上传文件时,默认最大文件大小不超过4M
怎么让上传的文件大小更大
GridView分页
要实现GrdView分页的功能
方法二
窗体关闭事件
防止重复登陆
WinForm与Web
下载图片
获取Internet历史路径
删除Cookie
下载网页
韩文提交字符转换
C#获取远程网页中的所有链接URL
C#获取远程网页中所有的表单
获取网络状态
webBrowser自动登录到163网站
Winform请求页面
页面标头信息
使用到的类:
代码演示(使用上文中的类,不重复声明了)
使用 POST请求页面
使用GET请求页面
C#数据库类
接口InterDBClass
Access数据库连接
SQL数据库连接
配置文件
C#方法大全 正则表达式 /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行。 /\d{2}-\d{5}/ "\d{2}-\d{5}" 验证一个 ID 号码是否由一个 2 位字,一个连字符以及一个 5 位 数字组成。 /<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 匹配一个 HTML 标记。 string str = "开头需要匹配的字符串([\\S\\s]*?)(结尾需要匹配的字符串)"; Regex re = new Regex(str); MatchCollection matches = re.Matches(content); System.Collections.IEnumerator enu = matches.GetEnumerator(); while (enu.MoveNext() && enu.Current != null) { } Match match = (Match)(enu.Current); string div = match.Value; Console.Write(match.Value + "\r\n"); WinRAR 命令行 利用 WinRAR 命令行压缩文件或文件夹 2007-11-14 15:07 压缩文件夹 winrar.exe a -ag -k -r -s -ibck c:\bak.rar c:\dat\ 压缩多个文件 winrar a -ag -ibck bak.rar filename1 filename2 参数说明 winrar.exe:运行 winrar, 如果 winrar.exe 没在默认路径中则需要指明路径,如 c:\Progra~1\winrar\winrar.exe ...; a :备份所有文件; -ag :当创建压缩文件时,以格式“YYYYMMDDHHMMSS”附加当前日期字符串,文件名 bakYYYYMMDDHHMMSS.rar; -k :锁定压缩文件; -r:备份目录和子目录; -s :创建固实压缩文件; -ibck :后台运行; c:\bak.rar :备份的路径和基本名称(-ag 参数会自动在 bak 后加上系统当前时间), 也可不用-ag 参数,通过“%date:~0,4%%date:~5,2%%date:~8,2%”取得时间字串,
也可写作 c:\bak.zip; c:\dat\ :要备份的文件目录。 filename1:要压缩的文件名,可以多个,也可用通配符 file* 用 C#创建 Windows 服务(Windows Services) http://www.taiwanren.com/blog/article.asp?id=8686 Windows 服务在 Visual Studio 以前的版本中叫 NT 服务,在 VS.net 启用了新的名称。用 Visual C# 创建 Windows 服务不是一件困难的事,本文就将指导你一步一步创建一个 Windows 服 务并使用它。这个服务在启动和停止时,向一个文本文件中写入一些文字信息。 第一步:创建服务框架 要创建一个新的 Windows 服务,可以从 Visual C# 工程中选取 Windows 服务(Windows Service)选项,给工程一个新文件名,然后点击 确定。 你可以看到,向导向工程文件中增加 WebService1.cs 类: 如下图来设置属性: 其中各属性的含意是: ü ü ü ü OnShutDown 过程 CanStop ü ü ServiceName Autolog CanHandlePowerEvent CanPauseAndContinue CanShutdown 服务是否在运行它的计算机关闭时收到通知,以便能够调用 是否自动写入系统的日志文件 服务时候接受电源事件 服务是否接受暂停或继续运行的请求 服务是否接受停止运行的请求 服务名 第二步:向服务中增加功能 在 .cs 代码文件中我们可以看到,有两个被忽略的函数 OnStart 和 OnStop。 OnStart 函数在启动服务时执行,OnStop 函数在停止服务时执行。在这里,当启动和停止服 务时,向一个文本文件中写入一些文字信息,代码如下: protected override void OnStart(string[] args) { FileStream fs = new FileStream(@"d:\mcWindowsService.txt" FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); m_streamWriter.WriteLine("mcWindowsService:Service Started"+DateTime.Now.ToString()+"\n"); , FileMode.OpenOrCreate,
m_streamWriter.Flush(); m_streamWriter.Close(); fs.Close(); } protected override void OnStop() { FileStream fs = new FileStream(@"d:\mcWindowsService.txt" FileAccess.Write); StreamWriter m_streamWriter = new StreamWriter(fs); m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); m_streamWriter.WriteLine(" "+DateTime.Now.ToString()+"\n"); m_streamWriter.Flush(); m_streamWriter.Close(); fs.Close(); } mcWindowsService: 第三步: 将安装程序添加到服务应用程序 , FileMode.OpenOrCreate, Service Stopped Visual Studio.NET 随附有安装组件,可用来安装与服务应用程序相关联的资源。安装组件 在正在安装到的系统上注册一项单个的服务,并使服务控制管理器知道该服务的存在。 要正确安装服务,并不需要在安装程序中进行任何特殊编码。但是,如果需要向安装进程添 加特殊功能,则可能偶尔需要修改安装程序的内容。 将安装程序添加到服务应用程序的步骤是: 1:在解决方案中,访问要向其中添加安装组件的服务的 Design 视图。 2:在属性窗口中,单击添加安装程序链接 这时项目中就添加了一个新类 ProjectInstaller 和两个安装组件 ServiceProcessInstaller 和 ServiceInstaller,并且服务的属性值被复制到组件。 3:若要确定如何启动服务,请单击 ServiceInstaller 组件并将 StartType 属性设置为适当的 值。 ü ü ü 4:将 serviceProcessInstaller 类的 Account 属性改为 LocalSystem 这样,不论是以哪个用户登录的系统,服务总会启动。 第四步:生成服务程序 通过从生成菜单中选择生成来生成项目。 注意 不要通过按 F5 键来运行项目——不能以这种方式运行服务项目。 第五步:安装服务 访问项目中的已编译可执行文件所在的目录。 用项目的输出作为参数,从命令行运行 InstallUtil.exe。在命令行中输入下列代码: installutil yourproject.exe 卸载服务 用项目的输出作为参数,从命令行运行 InstallUtil.exe。 服务安装后,必须手动启动。 每次计算机重新启动时,服务都会自动启动。 服务无法启动。 Manual Automatic Disabled
installutil /u yourproject.exe 至此,整个服务已经编写,编译,安装完成,你可以在控制面板的管理工具的服务中,看到 你编写的服务。 表到树(递归) 无限极分类表结构到树结构 Form /// /// 无限极分类表结构到树结构 /// /// 跟节点 /// 数据集 /// 主键列名称 /// 子键列名称 /// 显示列名称 /// 子键初始值 public void TableToTree(ref System.Windows.Forms.TreeNode node, System.Data.DataTable table, string pKeyColumn, string fKeyColumn, string textColumn, string nodeIndex) { string filter = fKeyColumn + "=" + nodeIndex; System.Data.DataRow[] drs = table.Select(filter); System.Windows.Forms.TreeNode tn; for (int i = 0; i < drs.Length; i++) { System.Data.DataRow dr = (System.Data.DataRow)drs[i]; if (dr[fKeyColumn].ToString().Equals(nodeIndex)) { tn = new System.Windows.Forms.TreeNode(); tn.Text = dr[textColumn].ToString(); tn.Tag = nodeIndex; node.Nodes.Add(tn); TableToTree(ref tn, table, pKeyColumn, fKeyColumn, textColumn, dr[pKeyColumn].ToString()); } } }
Web #region 无限极分类表结构到树结构 /// /// 无限极分类表结构到树结构 /// /// 跟节点 /// 数据集 /// 主键列名称 /// 子键列名称 /// 显示列名称 /// 子键初始值 public static void TableToTree(ref System.Web.UI.WebControls.TreeNode node, System.Data.DataTable table, string pKeyColumn, string fKeyColumn, string textColumn, string nodeIndex) { string filter = fKeyColumn + "=" + nodeIndex; System.Data.DataRow[] drs = table.Select(filter); System.Web.UI.WebControls.TreeNode tn; for (int i = 0; i < drs.Length; i++) { System.Data.DataRow dr = (System.Data.DataRow)drs[i]; if (dr[fKeyColumn].ToString().Equals(nodeIndex)) { tn = new System.Web.UI.WebControls.TreeNode(); tn.Text = dr[textColumn].ToString(); tn.Value = dr[pKeyColumn].ToString(); node.ChildNodes.Add(tn); TableToTree(ref tn, table, pKeyColumn, fKeyColumn, textColumn, dr[pKeyColumn].ToString()); } } } #endregion 过滤 DataTable 结果集,返回 DataTable /// /// 过滤DataTable结果集,返回DataTable /// /// 过滤条件(例:id=1) /// 需要过滤的DataTable /// 排序条件(例:id asc)
/// public static DataTable filterDataTable(string filter,DataTable table,string sort) { } DataTable returnTable = new DataTable(); returnTable = table.Clone();//拷贝框架 DataRow[] drs = table.Select(filter,sort); for (int i = 0; i < dr.length; i++) { } returnTable.ImportRow((DataRow)drs[i]);//拷贝行内容 return returnTable; 闰年判断 /// /// 闰年判断,是返回true /// /// 年份 /// public bool isYear(int iYear) { } return (iYear % 400 == 0 || (iYear % 4 == 0 && iYear % 100 != 0)); 字符串充当分隔符 /// /// 字符串充当分隔符,分割字符串 /// /// 字符串 /// 分割符 /// public static string[] split(string strinput, string sp) { string tmp = ""; int strlen = 0, splen = 0; int found = 0; string[] rt = null;//返回数组 try { //输入判断
if (strinput == null || sp == null || strinput.Length == 0 || sp.Length == 0) return null; //初始化一个数组列表(当做动态数组) System.Collections.ArrayList tmp3 = new ArrayList(); strlen = strinput.Length;//获得输入字符串的长度 splen = sp.Length;//分隔符的长度 for (int i = 0; i < strlen; i++) { //查找分隔符 found = strinput.IndexOf(sp, i); if (found >= 0) { tmp = ""; //取分隔符前的字符串 tmp = strinput.Substring(i, found - i); //添加到数组列表 tmp3.Add(tmp); i = found + splen - 1; } else { string tmp2 = ""; //取最后的字符串 tmp2 = strinput.Substring(i); if (tmp2 != "") tmp3.Add(tmp2); break; } } //将动态数组的维数设置成实际存在的元素个数,因为数组列表是以16的倍数递增维数的 tmp3.TrimToSize(); //转换数组列表为字符串数组,并返回。 rt = (string[])tmp3.ToArray(typeof(String)); tmp3.Clear(); } catch (Exception e) { } //Console.WriteLine("{0}", e.Message); throw e; return rt; }
替换字符串中的连续空格为 1 个空格 /// /// 替换字符串中的连续空格为1个空格 /// /// 字符串 /// public static string replaceBlank(string str) { //除去字符串开始部分的连续空格 while (str.StartsWith(" ")) { } str = str.Remove(0, 1); //除去字符串结尾部分的连续空格 while (str.EndsWith(" ")) { } str = str.Remove(str.Length-1); //除去字符串中间部分的连续空格 string[] strs = str.Split(' '); string newStr = ""; for (int j = 0; j < strs.Length; j++) { } if (!strs[j].Equals("")) { } newStr += strs[j] + " "; //去除最后一个空格 newStr = newStr.Remove(newStr.Length - 1); return newStr; } 字符串转换 XML using System; using System.IO; using System.Xml; public class Sample {
分享到:
收藏