EXTJS VType 使用范例

 

分页存储过程UP_GetRecordByPage(对有主键的表效率极高)

 

 

C#操作压缩文件(rar,zip,gzip,winform/asp.net)

 

 

从.NET 2.0开始,微软提供了一个 System.IO.Compression 的NameSpace,下含有 GZipStream 和 DeflateStream,都具有压缩和解压功能,但是,确不支持 zip 和 rar等常用的压缩文件。因为rar是有版权的,不支持有情可原,但zip是开源的,也不支持就有点自私了(估计微软是为了自己的cab格式)

对于 rar 格式,我们可以直接利用WinRAR提供的rar.exe/unrar.exe(此文件在winrar的安装目录下,是一个console程序),这种情况,只能用于 winform 或者 在提权 的情况下,才能用于 asp.net ;

对于 zip 格式,我们这里推荐是用原生的C#类库,这种方式,可以适用于asp.net(要有目录的写权限),我推荐大家使用开源免费的 SharpZipLib 。

对于 rar.exe 的解压和压缩,下面先给出它的 命令行格式对照表,便于了解:

rar命令行的使用方法:

rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件…> <@列表文件…> <解压路径\>

rar的命令列表:

 

rar 的开关列表:


rar使用的例子:

 

1、rar a file file.ext 

如果file.rar不存在将创建file.rar文件;如果file.rar压缩包中已有file.ext,将更新压缩包中的file.ext

2、rar a file d:\*.ext

将d盘下所有ext文件(不包括自文件夹)添加到压缩包中

3、rar x Fonts *.ttf 

从压缩文件中解压 *.ttf 字体文件到当前文件夹

4、rar x Fonts *.ttf NewFonts\

从压缩文件中解压 *.ttf 字体文件到 NewFonts 目录下

5、rar e -p密码 test.rar

将有密码test.rar文件,解压到当前文件夹


C#调用rar.exe解压一个rar文件到系统的临时目录:

例子代码下载

SQL临时表用法

1、MS SQLSERVER

     SQL Server 支持临时表。临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内。

     临时表有两种类型: 
     本地临时表:本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft SQL Server 2000 实例断开连接时被删除。 
     全局临时表:全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的。如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。当创建全局临时表的连接断开后,新的任务不能再引用它们。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。 
     例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。 
     现在,临时表的许多传统用途可由具有 table 数据类型的变量替换。

2、ORACLE 
     Oracle支持临时表。临时表用来保存事务或会话期间的中间结果。在临时表中保存的数据只有对当前会话是可见的,任何会话都不能看到其他会话的数据,即使在当前会话COMMIT数据以后也是不可见的。多用户并行不是问题,一个会话从来不阻塞另一个会话使用临时表。即使锁定临时表,一个会话也不会阻塞其他会话使用临时表。临时表比正常表产生的REDO少得多,然而,由于临时表必须产生包含数据的UNDO信息,所以会产生一定数量的REDO日志。 
     临时表将从用户临时表空间的的目前日志中分配空间,或者如果从有定义权的程序中访问,将使用程序所有者的临时表空间。全局临时表实际上只是表本身的模板。创建临时表的行为不包括存储空间的分配,也不包括INITIAL的分配。因此,在运行时当一个会话首先将数据放到临时表中时,这时将创建这个会话的临时段。由于每个会话获取自己的临时段,每个用户可能在不同的表空间中为临时表分配空间。USER1的default临时表空间为TEMP1,他的临时表将从TEMP1中分配空间,USER2的default临时表空间为TEMP2,他的临时表将从TEMP2中分配空间。 
     临时表在每个数据库中只需创建一次,不必在每个存储过程中创建。临时表总是存在的,除非手动的删除他。临时表作为对象存在数据字典中,并且总是保持为空,直到有会话在其中放入数据。Oracle允许创建基于临时表的视图和存储过程。 
     临时表可以是以会话为基础的,也可以是以事务为基础的。ON COMMIT PRESERVE ROWS子句使临时表成为基于会话的模式。行将留在此表中,直到会话断开或通过DELETE或TRUNCATE从物理上删除这些行。ON COMMIT DELETE ROWS子句使临时表成为基于事务的模式。当会话提交后,行消失。这个临时表的自动清除过程不会有额外的开销。 
     在oracle中,应用程序需要的临时表应该在程序安装时创建,而不是在程序运行时创建。(这是与ms sqlserver或sybase的使用的不同) 
     在任何数据库中,临时表的一个缺点是:事实上优化器在临时表中没有真正的统计功能。然而,在oracle中,一系列较好的统计猜测可以通过DBMS_STATS包在临时表中设置。

3、DB2 
    可使用 DECLARE GLOBAL TEMPORARY TABLE 语句来定义临时表。DB2的临时表是基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现 
下面是定义临时表的一个示例: 
DECLARE GLOBAL TEMPORARY TABLE gbl_temp 
LIKE empltabl 
ON COMMIT DELETE ROWS 
NOT LOGGED 
IN usr_tbsp 
此语句创建一个名为 gbl_temp 的用户临时表。定义此用户临时表 所使用的列的名称和说明与 empltabl 的列的名称和说明完全相同。隐式定义 只包括列名、数据类型、可为空特性和列缺省值属性。未定义所有其他列属性,包括唯一约束、外部关键字约束、触发器和索引。执行 COMMIT 操作时, 若未对该表打开 WITH HOLD 游标,则该表中的所有数据都被删除。不记录 对用户临时表所作的更改。用户临时表被放在指定的用户临时表空间中。此表空间必须存在,否则此表的声明将失败。 
户定义临时表不支持: 
• LOB 类型的列(或基于 LOB 的单值类型列) 
• 用户定义类型列 
• LONG VARCHAR 列 
• DATALINK 列

其创建方法:

 


select [字段1,字段2,…,] into TempTableName from table ,如上所说.

而后便可像使用常规表一样使用它们.

临时表其实是放在数据库tempdb里的一个用户表
分两种:
一种是以#(局部)或##(全局)开头的表,这种表在会话期间存,会话结束则自动删除;
另一种,如果创建时不以#或##开头,而用tempdb.TempTable来命名它,则该表可在数据库重启前一直存在.
以上两种都可手动用
drop table TempTableName 来删除.

请参考---动态sql语句基本语法     
  1   :普通SQL语句可以用Exec执行     
    
  eg:       Select * from tableName

Exec sp_executesql N'select * from tableName'         —   请注意字符串前一定要加N     
    
  2:字段名,表名,数据库名之类作为变量时,必须用动态SQL     
    
  eg:         

    
  当然将字符串改成变量的形式也可     
  declare @fname varchar(20)

    
  3.   输出参数     
  declare @num int,

    
    
  –需要注意,如果字段是数值型,不要用单引号,其他如字符型和日期型都要单引号即:   
  

示例:

C#中文转拼音代码

c#代码,自动生成简码,可以根据输入的商品名称等信息自动取其中文拼音首字母作为简码-c# code automatically generated Jane code, based on the importation of trade names and other information automatically choose the first letter of Chinese phonetic code as Jane

 

sqlserver 重置自增字段

有兩種方法:   
  方法1:   

 

    
  方法2:   

asp与aspx共享session

因为最近要把asp和aspx两个网站整合到一起,session自然就成了一个难题了,自己在这方面还没有接触过,所以没办法又到处找资料。微软的网站上提供的是用数据库实现的,总觉得太麻烦,速度又会下降,于是放弃.也有说直接使用的,但我试了下没成功,大部分人认为这样是不可能的。另外还有一种方法,就是通过几个页面转换,我最后选用也是这个方法,通过搜索到的资料,整理后编写了几个页面来转换。主要是通过隐藏的input来实现的。具体方法如下:

 

asp转asp.net

logincheck.asp

程序代码 程序代码

 

 

asptoaspx.aspx

程序代码 程序代码

 

 

asp.net 转 asp 页面:

logincheck.aspx

程序代码 程序代码

 

 

aspxtoasp.asp

程序代码 程序代码

 

 

 

 

 

使用Visual Studio内置WebServer发布

一    Visual Studio内置的WebDev.WebServer使用方法

个人不太喜欢计算机里面启动太多服务。而做ASP.NET的开发又需要装IIS,于是常常不停地启动w3svc,iisadmin等服务,相当的麻烦。

   于是考虑完全不装IIS,使用VS中自带的asp.net development server来代替IIS。

   asp.net development server的进程名称是:WebDev.WebServer.EXE。

   VS2005的WebDev.WebServer.EXE保存在:%systemroot%\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE。

   VS2008的WebDev.WebServer.EXE保存在:C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.EXE。

   VS2010的WebDev.WebServer.EXE保存在:C:\Program Files\Common Files\microsoft shared\DevServer\10.0\WebDev.WebServer20.EXE

   VS2010的asp.net 4.0 WebDev.WebServer.EXE:C:\Program Files\Common Files\microsoft shared\DevServer\10.0\WebDev.WebServer40.EXE

 

在命令行下执行:WebDev.WebServer.EXE/?可以看见关于此命令的帮助,非常简单,就三个参数:

/port:端口

/path:"物理路径"

/vpath:"虚拟路径"

 

    需要临时开一个WEB站点的时候,在开始>运行中输入以下命令:

%systemroot%\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE /port:80 /path:"c:\mysite" /vpath:"/"

        或:

    "C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.EXE" /port:80 /path:"c:\mysite" /vpath:"/"

 

二 加入右键菜单,快速发布文件夹中的web应用

1 新建记事本,内容如下:

“ASP.NET 2.0 Web Server Here”是文件夹上右击菜单中的选项值,请修改成您希望的
“C:\\Program Files\\Common Files\\microsoft shared\\DevServer\\10.0\\WebDev.WebServer20.EXE /port:8080”就是WebDev.WebServer执行程序的目录和发布的端口号
 
注意,如果您机器上安装了IIS或者其他web服务器,请不要使用重复的端口号,否则会冲突是无法发布的哦!
 

 

 

SyntaxHighlighter详细配置

一 什么是SyntaxHighlighter?

SyntaxHighlighter一个基于JavaScript实现的将网页中展示的代码根据语法高亮显示功能

 

 

二 为什么选择SyntaxHighlighter?

SyntaxHighlighter功能全面,并且独立可以引用到任何网页。

wordpress写博客,一般有2种代码高亮方式:1是代码高亮插件,其中很多都是基于SyntaxHighlighter开发的,通过js后渲染的;2是通过windows live writer的code snippet插件或code render的直接把代码做成高亮语法的html代码

2种方式各有优势,后一种方式加载速度快,页面打开即语法高亮,缺点是修改部分代码后要重新生成所有代码

我个人倾向于采用第一种方式,但不建议使用插件,建议直接将SyntaxHighlighter整合到主题中,按需来加载JS,详细的方法我会在后面介绍

 

三 效果演示

 

 

四 安装步骤

 

 

1、 引入shCore.js 和 shCore.css ;

2、 引入所需要的brushes,比如高亮显示JavaScript需要引入shBrushJScript.js;

3、引入级联样式表文件:shCore.css 和 shThemeDefault.css ;

4、 用<pre>标签标识准备高亮显示的代码段;

5、 调用SyntaxHighlighter.all()方法。

代码示例:

 

  1.  

 

 

SyntaxHighlighter.config中的配置项的作用范围是被高亮显示的整个代码块,而对于代码块中单行的代码则没有什么意义,以下为具体配置项的说明:

Name Value Description
bloggerMode false 如果你要高亮的内容位于blogger.com,那么你需要开启这个开关。
strings Object 该配置项允许你修改默认信息。
stripBrs false 该选项会自动过滤掉被高亮代码块中每行后面自动添加的<br />标记
tagName "pre" 该配置项允许使用其他标签来标识代码块。

代码示例:

 

 

SyntaxHighlighter.defaults中的配置项的应用对象是代码块中的单行代码。

Name Value Description
auto-links true 是否自动检测代码块中的超链接。关闭该配置型,则代码块中的链接被关闭,无法点击进入。
class-name '' 加入自定义样式。
collapse false 代码块是否默认折叠。
first-line 1 该配置项允许修改起始行的行号。
gutter true 该配置项用来设置行号显示与否。
highlight null 该配置项用来着重显示某些代码行。可以通过单个数字来着重显示单行,或者传入一个类似 [1, 2, 3] 的数组来着重显示指定的多行。
html-script false 开启该配置项可以高亮显示HTML/XML代码,这在WEB开发中非常常见。开启该配置项需要shBrushXml.js的支持,同时你的brush也需要支持该特性。
smart-tabs true 该配置项用来开启或关闭 mart tabs 特性。
tab-size 4 该配置项用来设置代码块中tab键的大小。
toolbar true 配置项用来设置工具栏的显示与否。

 

代码示例:

 

 

Parameters
Parameters仅在当前代码段中生效,我们可以利用Parameters的这个特性为同一页面的不同代码段设置不同的高亮效果。Parameters利用键值对进行设置,这种形式同CSS非常类似。

通过设置Parameters,我们可以修改 SyntaxHighlighter.defaults 中的任意配置项的默认值。

代码示例:

 

 

 

 

C# 控制主板蜂鸣器发声

 

在C#中可以通过以下四种方式来实现蜂鸣或者报警,播放声音之类的功能.XP下对蜂鸣有用,win7下请接上扬声器.

1). Beep的报警实现

 

2) 调用Microsoft.ViualBase中的Beep():
1.先引入命名空间:using Microsoft.VisualBasic;
2.调用:Interaction.Beep();
在编译时注意要引用Microsoft.VisualBasic.dll程序集,否则编译不能通过。
另外,如果是Console应用,可以用Console.WriteLine(”\a”);来代替Beep()。

3) 通过主板蜂鸣器发出蜂鸣

 

 

4) 调用PlaySound(string pszSound,int hmod,int fdwSound)来播放声音