代码改变世界

CSS Hack 技术

2006-12-13 22:18 by Jeffrey Lee, 440 阅读, 0 推荐, 收藏, 编辑
摘要:CSS的定义如下:1div.content{}{2width:400px;3voice-family:“\”}\”";4voice-family:inherit;5width:300px;6}78html>body.content{}{9width:300px;10}或者html>body#left{}{width:120px;/**//*ie5winfudgeends*/}这种习惯出现在为IE5解决CSS1时代Width的bug。因为在IE5中,设置width的时候,浏览器会把border,padding全部算进去了,而正确的显示(也是IE后续版本),应该是width不 阅读全文

实现千万级数据的分页显示

2005-09-25 21:04 by Jeffrey Lee, 276 阅读, 0 推荐, 收藏, 编辑
摘要:/* 经测试,在 14483461 条记录中查询第 100000 页,每页 10 条记录按升序和降序第一次时间均为 0.47 秒,第二次时间均为 0.43 秒,测试语法如下: exec GetRecordFromPage news,newsid,10,100000 news 为 表名, newsid 为关键字段, 使用时请先对 newsid 建立索引。*//* 函数名称: GetRecordFromPage 函数功能: 获取指定页的数据 参数说明: @tblName 包含数据的表名 @fldName 关键字段名 @Page... 阅读全文

SQL Server 如何快速获取表的记录总数

2005-09-25 21:03 by Jeffrey Lee, 1295 阅读, 0 推荐, 收藏, 编辑
摘要:在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时间在1分钟以上。如果在表的某个字段上做聚簇索引,第一次执行该语句的时间和没有索引的时间差不多,之后执行上述语句,速度很快,在1秒中以内,但当表的记录数发生较大变化后,再执行该语句又会经历一次耗时的过程。而且不是每个表都适合做聚簇索引.. 阅读全文

用 SqlCommandBuilder 实现批量更新

2005-09-15 12:04 by Jeffrey Lee, 447 阅读, 0 推荐, 收藏, 编辑
摘要:(一)有没有人遇到这种情况,用 SqlDataAdapter.Update(ds)更新时出错? 一般是这样的,如果用设计器将SqlDataAdapter拖到页面中使用时,不会出现这种情况,因为系统会自动生成SqlDataAdapter的属性命令,比如: UpdateCommane InsertCommandSelectCommand等。但是有些程序员不喜欢用设计器,或者是有些地方没必要拖动SqlDataAdapter这么个庞大物来实现,那么SqlDataAdapter就不会自动生成相关的查询或更新语句了。所以当执行到SqlDataAdapter.Update(ds)语句时,SqlDataA.. 阅读全文

.Net 集合类型介绍

2005-09-15 12:03 by Jeffrey Lee, 498 阅读, 0 推荐, 收藏, 编辑
摘要:一般集合1)ArrayArray中的秩是Array中的维数. 一个Array可以有一个或多个秩.Array具有固定的容量. 如果有可变容量,则用Array.CreateInstance, 其可以不从零开始存储.2)ArrayListArrayList是数组的复杂版本. Array数组是固定的, 而ArrayList类是根据需要自动扩展的. 如果更改了Array.Capacity属性的值, 则自动进行内存重新分配和元素复制.ArrayList提供添加/或移除某一范围元素的方法. 在Array中, 只能一次获取或设置一个元素的值.使用 Synchronized方法可以很容易地创建ArrayList 阅读全文

关于ref,out,params参数的理解

2005-08-21 11:56 by Jeffrey Lee, 1820 阅读, 0 推荐, 收藏, 编辑
摘要:using System;namespace TestCS{ /// <summary> /// Class1 的摘要说明。 /// 本代码演示了ref,out和params关键字在函数参数传递中的作用 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { int i =... 阅读全文

如何使用SQL Server 2000全文检索

2005-08-10 13:40 by Jeffrey Lee, 739 阅读, 0 推荐, 收藏, 编辑
摘要:一、如何在SQL中启用全文检索功能1、验证全文检索服务是否安装通过储存过程FULLTEXTSERVICEPROPERTY(返回有关全文服务级别属性的信息)来验证搜索服务(全文组件)是否安装。如Select fulltextserviceproperty (‘IsFullTextInstalled’):返回1表示已安装全文组件;返回0表示未安装全文组件;返回Null表示输入无效或发生错误。2、启动全文检索服务(MircoSoft Search)3、打开数据库全文索引的支持为全文索引启用数据库:Use NorthwindExec sp_fulltext_database 'enable&# 阅读全文

Sql Server 高级注入技巧

2005-07-12 23:21 by Jeffrey Lee, 411 阅读, 0 推荐, 收藏, 编辑
摘要:[获取全部数据库名]select name from master.dbo.sysdatabases where dbid=7 //dbid的值为7以上都是用户数据库[获得数据表名][将字段值更新为表名,再想法读出这个字段的值就可得到表名]select top 1 name from 数据库名.dbo.sysobjects where xtype='u' and status>0 and name not in('table') [获得数据表字段名][将字段值更新为字段名,再想法读出这个字段的值就可得到字段名]select top 1 数据库名.dbo.c 阅读全文

实现Split功能的函数

2005-07-12 23:06 by Jeffrey Lee, 298 阅读, 0 推荐, 收藏, 编辑
摘要:/* * Author: Jeffrey Lee * Date: 2006-12-25 * Remark: 实现split功能 的函数 * */CREATE FUNCTION F_Split ( @SourceSql VARCHAR(8000), @StrSeprate VARCHAR(10))RETURNS @temp TABLE(TaskID VARCHAR(1000))AS BEGIN DECLARE @i INT -- 除去左右空格 SET @SourceSql = RTRIM( LTRIM( @SourceSql ) ) -- 获取第一个分割字符... 阅读全文

Visual Studio 安装部署深入研究

2005-07-12 15:57 by Jeffrey Lee, 509 阅读, 0 推荐, 收藏, 编辑
摘要:相信很多人都做过安装程序,目前最大功能最全的当属InstallShield,但是InstallShield的语法学习起来实在费劲,相对而言vs.net自带的安装部署短小精悍,且使用C#语法,对于一般C#开发者来说使用起来就极为简便,在对其作了一些研究之后,发现vs.net的安装部署项目的功能也已经非常好用,一般的程序安装都可以轻松实现,当然,在研究的过程中也发现了一些缺陷,这个后面再提。下面就向大家介绍一下ASP.NET安装部署项目的一些复杂应用实现:首先我们假设存在一个已经完工的web项目eHRM,其文件列表如图其中web.config中存在我们的数据库连接及系统的一些其他配置,如数据库类. 阅读全文

制作Web安装文件时遇到的几个小问题及其解决思路

2005-07-12 15:48 by Jeffrey Lee, 474 阅读, 0 推荐, 收藏, 编辑
摘要:收集的几个关于部署的问题(1)我需要在安装时对数据库进行操作,如何进行? 在MSDN里面,有专门的一个演练讲到操作数据库,地址是ms-help://MS.MSDNQTR.2003FEB.2052/vsintro7/html/vxwlkwalkthroughusingcustomactiontocreatedatabaseduringinstallation.htm.你可以在VS.NET配套的MSDN地址栏中输入刚才的地址,就是安装期间使用自定义操作创建数据库的演练. 当然,如果一切都这么简单的话,我的这个问题就不用写了. 如果你的Sql语句很简单,只是创建数据库的话,看MSDN的演练估计... 阅读全文

C#事件处理机制

2005-07-07 15:35 by Jeffrey Lee, 712 阅读, 0 推荐, 收藏, 编辑
摘要:事件简介: 任何进行过图形用户界面开发的编程人员都会知道事件的概念。当用户在使用程序的时候,用户必然要和程序进行一定的交互。比如当用户点击窗体上的一个按钮后,程序就会产生该按钮被点击的事件,并通过相应的事件处理函数来响应用户的操作。这样用户的直观感觉就是程序执行了我要求的任务了。当然,事件并不一定是在和用户交互的情况下才会产生的,系统的内部也会产生一些事件并请求处理的,比如时钟事件就是一个很好例子。不过要介绍C#中的事件处理机制(扩展到更广的范围便是整个.Net框架),我们首先得明白一个叫"委托"的概念。 C#中的委托: 委托,顾名思义,就是中间代理人的意思。C#中的委托允 阅读全文

Data Access Application Block 使用指南

2005-06-30 09:54 by Jeffrey Lee, 414 阅读, 0 推荐, 收藏, 编辑
摘要:摘要:Data Access Application Block 是一个 .NET 组件,包含优化的数据访问代码,可以帮助用户调用存储过程以及向 SQL Server 数据库发出 SQL 文本命令。它返回 SqlDataReader、DataSet 和 XmlReader 对象。您可以在自己的 .NET 应用程序中将其作为构造块来使用,以减少需要创建、测试和维护的自定义代码的数量。您可以下载完整的 C# 和 Visual Basic .NET 源代码以及综合文档。简介您是否正在从事 .NET 应用程序数据访问代码的设计和开发?您是否觉得自己总是在反复编写相同的数据访问代码?您是否曾经将数据访问 阅读全文

打包部署.Net平台的程序

2005-06-24 17:37 by Jeffrey Lee, 370 阅读, 0 推荐, 收藏, 编辑
摘要:部署用.net写的程序时客户系统需要安装对应版本的.net Framework,而VS.NET自带的安装程序项目没有提供一起打包框架的功能,这一点让许多开发者觉得不爽,在csdn论坛上也有人提及如何方便的把.net程序部署到没有安装框架的windows系统上。几个月前下载了Microsoft Visual Studio .NET 2003 引导程序插件(其实这个微软早在2003年底已经提供了,但是我一直没有发现)。前段时间把这个插件安装了一下,发现vs.net 2003的菜单和工具栏里面都没有找到对应的命令,觉得很奇怪,因为像WMI的vs.net2003插件安装上后在服务器资源管理器里面就会. 阅读全文

排序算法‘冒泡排序,选择排序,快速排序’

2005-06-22 09:48 by Jeffrey Lee, 587 阅读, 0 推荐, 收藏, 编辑
摘要:常用排序工具类:SortClass 的摘要说明。 对整形数组进行排序 可以重写每个排序算法支持多类型 注意:数组、对象,为传地址指针的形式 执行方法后会便改原始数组内容。 支持:1、冒泡排序2、选择排序3、快速排序using System;namespace 排序算法 { /**//// <summary> /// 排序模式 /// </summary> public enum SortTypeEnum { ASC, //正序 A-Z DESC //到序 Z-A } /**//// <summary> /// So... 阅读全文

ASP.NET中基于Forms验证的角色验证授权

2005-06-21 18:47 by Jeffrey Lee, 558 阅读, 0 推荐, 收藏, 编辑
摘要:Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活。Forms 验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端。服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了。问题来了,在实际是用中我们往往需要的是基于角色,或者说基于用户组的验证和授权。对一个网站来说,一般的验证授权的模式应该是这样的:根据实际需求把用户分成不同的身份 阅读全文