木子屋 Dnawo's BLOG

2009-09 归档

共 40 篇

C#判断中英文混合字符串长度及截取函数

using System.Text.RegularExpressions; using System.Text; /// <summary> /// 字符串长度(按字节算) /// </summary> /// <param name="str"></param> /// <returns></returns> static int StrLength(string str) { int len = 0; byte b; for (int i = 0; i < str.Length; i++) { b = Encoding.Default.…

多条件查询 VS 参数化查询

一直以来对参数化查询有个误解:SqlCommand对象中,给Parameters添加参数的个数必须和CommandText中使用的变量个数相等。今天测试发现: ·CommandText中使用的变量在Parameters中必须有对应的参数; ·Parameters中参数的个数可以多于CommandText中使用的变量个数; 道理很简单,你在程序中使用的变量都必须先声明,但声明的变量没有要求说一定都得在程序中使用。 上边例子中,当categoryID=-1时,声明的@CategoryID变量就是多余的,但并不影响程序运行,这样在多条件查询下使用参数化查询写代码就简单多了。

中断解析

一、中断是什么 中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢? 举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事,于是慌慌张张的冲向水管,三下两下关了龙头,声音又传到耳边,“怎么干什么都是这么马虎?”。伸伸舌头,这件小事就这么过去了,我落寞的眼神又落在了水壶上。 门外忽然又传来了铿锵有力的歌声,我最喜欢的古装剧要开演了,真想夺门而出,然而,听着水壶发出“咕嘟咕嘟”的声音,我清楚:除非等到水开,否则没有我享受人生的时候。…

PictureBox加载图片后无法删除解决方法

PictureBox加载图片后,再将Image属性值设置为null,但本地图片仍无法删除,提示文件正被另一个程序使用,相关代码: 究其原因应是Image属性值设置为null,但资源仍未释放,需等垃圾回收器回收,那我们就手动释放资源再测试下: 终于可以删除了!但如果图片在使用中时试图删除图片,上边代码又不行了,解决方法是将本地图片读到内存流(相当于复制一份图片),再将内存流转化为Image对象并绑定到PictureBox的Image属性,这样原图可正常删除,代码如下:

C#计算文件MD5值

/// <summary> /// 文件路径 /// </summary> /// <param name="path"></param> /// <returns></returns> public static string FileToMD5(string path) { using (FileStream fs = new FileStream(path, FileMode.Open)) { MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();…

联盟主题资源分类数据库结构设计

旧的主题资源分类: 很明显,二版主题、三版主题和UIQ主题下的子类基本上是一样的,造成这种现象的原因是:二版、三版、五版和UIQ是手机系统分类,爆笑趣图、美女系列、花草树木、卡通动画等则是资源内容分类,它们是资源两种分类方法,应是并列结构的,上边却将他们设计成了上下级结构,自然形成冗余。 结构改进:为资源建两张分类表,保存手机系统分类和资源内容分类: 还存在一个问题:动态主题、变态主题、手机乐秀实际上是新增的业务类型,若页面上有个手机乐秀的分类,并想在其下按资源内容分类显示资源,按上边修改的结构,实际是做不到的。实际上,动态主题、变态主题、手机乐秀是资源按业务类型的分类方法,和手机系统分类方法、资源内容分类方法也是并列的。最终修改为:

使用MemoryStream与FileStream

编程访问文件是通过文件流对象进行的,当应用程序需要访问文件时,必须先创建一个文件流对象,此流对象和文件是一一对应关系。 在.NET中,使用抽象基类System.IO.Stream代表流,它提供Read和Write两个方法。由于数据流的有序性,因此流对象还有一个读写指针,为此,Stream类还有一个Seek方法用于移动读写指针。 ·FileStream对象的数据来自文件,而MemoryStream对象的数据来自内存缓冲区。这两个类都继承自Stream类。 ·MemoryStream的数据来自内存中的一块连续区域,这块区域称为"缓冲区(Buffer)"。可以把缓冲区看成一个数组,每个数组元素可以存放一个字节的数据。…

[C#] Sql Server2000图片存取技术

//存储 private void button1_Click(object sender, EventArgs e) { using (SqlConnection conn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=Northwind;User ID=sa;Password=sa")) { conn.Open(); using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = conn; cmd.…

IE对CSS样式表的限制和解决方案

HTML文档与CSS的关联常见有4种方式: 1.使用link标记 2.使用style元素 3.使用@import指令 4.使用style属性的内联样式(inline style) 在实际应用中,使用style属性的内联样式是不推荐使用的,XHTML1.1已经将其标准为不建议使用,原因很简单这种方式不比font标记强多少,削弱了CSS集中控制整个文档外观的优点。前3种方式利用了link标记和style标记,在IE(包括IE6、IE7和IE8 beta1)中有如下限制: 1.文档中只有前31个link或style标记关联的CSS能够应用。 从第32个开始,其标记关联的CSS都将失效。IE的官方文档All style tags after the first 30 style tags on an HTML page are not applied in Internet Explorer也提及这个限制,包括在使用.xsl的.xml文件也有这个限制。但是似乎写错了数量。…

C#正则表达式之分组构造示例

我们常用的分组构造语法为:(子表达式),例如: 该语法捕获的子表达式存放在一个索引数组中,使用match.Groups.Value获取值,Groups.Value表示完整字符串,Groups.Value表示第1个括号内容,Groups.Value表示第2个括号内容,依此类推。 下边介绍另一种分组构造,语法为:(?子表达式),它将捕获的子表达式存放在一个关联数组中,使用match.Groups.Value获取值,例如: