blogjava-凯发k8网页登录http://www.blogjava.net/wangdetian168/zh-cnsat, 08 apr 2023 20:35:09 gmtsat, 08 apr 2023 20:35:09 gmt60 联想thinkpad e450c为什么不支持3.0u盘 不支持u盘启动解决方法http://www.blogjava.net/wangdetian168/archive/2018/10/18/433446.htmlsanmaosanmaothu, 18 oct 2018 06:52:00 gmthttp://www.blogjava.net/wangdetian168/archive/2018/10/18/433446.htmlhttp://www.blogjava.net/wangdetian168/comments/433446.htmlhttp://www.blogjava.net/wangdetian168/archive/2018/10/18/433446.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/433446.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/433446.html

sanmao 2018-10-18 14:52 发表评论
]]>
存储过程传参返回值http://www.blogjava.net/wangdetian168/archive/2017/11/28/432926.htmlsanmaosanmaotue, 28 nov 2017 10:46:00 gmthttp://www.blogjava.net/wangdetian168/archive/2017/11/28/432926.htmlhttp://www.blogjava.net/wangdetian168/comments/432926.htmlhttp://www.blogjava.net/wangdetian168/archive/2017/11/28/432926.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/432926.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/432926.html
@pagecount  int output            --总页数


if @pagecount is null begin set @sql
=n'select @pagecount=count(*)' n' from ' @tbname n' ' @where exec sp_executesql @sql,n'@pagecount int output',@pagecount output set @pagecount=(@pagecount @pagesize-1)/@pagesize end

sanmao 2017-11-28 18:46 发表评论
]]>
没有找到framedyn.dll,程序未能启动http://www.blogjava.net/wangdetian168/archive/2015/06/20/425809.htmlsanmaosanmaosat, 20 jun 2015 08:59:00 gmthttp://www.blogjava.net/wangdetian168/archive/2015/06/20/425809.htmlhttp://www.blogjava.net/wangdetian168/comments/425809.htmlhttp://www.blogjava.net/wangdetian168/archive/2015/06/20/425809.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/425809.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/425809.html 可能是系统意外关机造成的 文件丢失
查找一下你的电脑\windows\system32\wbem目录看有没有framedyn.dll,
如果有这文件,将framedyn.dll文件从\windows\system32\wbem目录下拷贝到\windows\system32目录下就可以了。  
如果在\windows\system32\wbem目录下也找不到framedyn.dll文件,也可以从安装同样操作系统的电脑中拷贝
 framedyn.dll 文件到你这台电脑的 \windows\system32目录下。

sanmao 2015-06-20 16:59 发表评论
]]>
男性英文名字http://www.blogjava.net/wangdetian168/archive/2015/01/26/422430.htmlsanmaosanmaomon, 26 jan 2015 01:00:00 gmthttp://www.blogjava.net/wangdetian168/archive/2015/01/26/422430.htmlhttp://www.blogjava.net/wangdetian168/comments/422430.htmlhttp://www.blogjava.net/wangdetian168/archive/2015/01/26/422430.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/422430.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/422430.html

sanmao 2015-01-26 09:00 发表评论
]]>
循环json数组http://www.blogjava.net/wangdetian168/archive/2014/11/07/419669.htmlsanmaosanmaofri, 07 nov 2014 08:50:00 gmthttp://www.blogjava.net/wangdetian168/archive/2014/11/07/419669.htmlhttp://www.blogjava.net/wangdetian168/comments/419669.htmlhttp://www.blogjava.net/wangdetian168/archive/2014/11/07/419669.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/419669.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/419669.html

sanmao 2014-11-07 16:50 发表评论
]]>
js window.open() 方法使用和window.open() 介绍http://www.blogjava.net/wangdetian168/archive/2014/07/04/window-open.htmlsanmaosanmaofri, 04 jul 2014 01:20:00 gmthttp://www.blogjava.net/wangdetian168/archive/2014/07/04/window-open.htmlhttp://www.blogjava.net/wangdetian168/comments/415437.htmlhttp://www.blogjava.net/wangdetian168/archive/2014/07/04/window-open.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/415437.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/415437.html阅读全文

sanmao 2014-07-04 09:20 发表评论
]]>
axure rp 下载|专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或web网站的线框图、流程图、原型和规格说明文档http://www.blogjava.net/wangdetian168/archive/2014/03/28/axure-rp.htmlsanmaosanmaofri, 28 mar 2014 00:16:00 gmthttp://www.blogjava.net/wangdetian168/archive/2014/03/28/axure-rp.htmlhttp://www.blogjava.net/wangdetian168/comments/411587.htmlhttp://www.blogjava.net/wangdetian168/archive/2014/03/28/axure-rp.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/411587.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/411587.html

功能简介

axure rp是美国axure software solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或web网站的线框图、流程图、原型和规格说明文档。作为专门的原型设计工具,它比一般创建静态原型的工具如visio、omnigraffle、illustrator、photoshop、dreamweaver、visual studio、fireworks要快速、高效。

开发商:axure software solutions, inc

软件凯发k8网页登录官网:

新版特征

1. 优化了界面和操作,明显提高绘制效率,可直接在控件上改变形状,同时加入了几个常用形状;
2. 支持了投影和内阴影,可以用来画简单的组件;
3. 支持更多的触发事件;
4. 普通形状也能增加事件效果,例如要移动一个形状,不需要转化成动态面板;
5. 事件用例感觉也有所变化,增加了一些参数,例如切换动态面板状态时有更多的参数可以选择;
6. 增加了和justinmind一样的实时预览功能,再也不用一遍又一遍地生成页面了;
7. 内容自适应,例如动态面板或文字块能根据内容自动适应到合适大小;
8. 强化的表格功能repeater,可以自动填充数据,对数据进行排序,过滤等操作;
9. 页面级的参数onreszie,这样在手机测试时可以作为横竖屏判断;
10. 响应式布局,可以定义不同窗口大小下的布局结构。


下载地址:


sanmao 2014-03-28 08:16 发表评论
]]>
高效的数据库分页存储过程 千万数据 那都不是个事http://www.blogjava.net/wangdetian168/archive/2014/03/17/411141.htmlsanmaosanmaomon, 17 mar 2014 07:32:00 gmthttp://www.blogjava.net/wangdetian168/archive/2014/03/17/411141.htmlhttp://www.blogjava.net/wangdetian168/comments/411141.htmlhttp://www.blogjava.net/wangdetian168/archive/2014/03/17/411141.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/411141.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/411141.html阅读全文

sanmao 2014-03-17 15:32 发表评论
]]>
oracle 9i下载|oracle 9i下载地址|oracle 9i凯发k8网页登录官网下载地址http://www.blogjava.net/wangdetian168/archive/2013/12/27/oracle-9i-xiazai-guanwang.htmlsanmaosanmaofri, 27 dec 2013 03:02:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/12/27/oracle-9i-xiazai-guanwang.htmlhttp://www.blogjava.net/wangdetian168/comments/408092.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/12/27/oracle-9i-xiazai-guanwang.html#feedback4http://www.blogjava.net/wangdetian168/comments/commentrss/408092.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/408092.html阅读全文

sanmao 2013-12-27 11:02 发表评论
]]>
jquery 筛选元素方法http://www.blogjava.net/wangdetian168/archive/2013/12/12/407479.htmlsanmaosanmaothu, 12 dec 2013 01:59:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/12/12/407479.htmlhttp://www.blogjava.net/wangdetian168/comments/407479.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/12/12/407479.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/407479.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/407479.html阅读全文

sanmao 2013-12-12 09:59 发表评论
]]>
oracle 12c 下载|oracle 12c 凯发k8网页登录官网下载带用户名密码|oracle 12c for windows64下载http://www.blogjava.net/wangdetian168/archive/2013/12/03/oracle-12c-64-windows.htmlsanmaosanmaotue, 03 dec 2013 01:59:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/12/03/oracle-12c-64-windows.htmlhttp://www.blogjava.net/wangdetian168/comments/407133.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/12/03/oracle-12c-64-windows.html#feedback13http://www.blogjava.net/wangdetian168/comments/commentrss/407133.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/407133.html阅读全文

sanmao 2013-12-03 09:59 发表评论
]]>
oracle sqlserver mysql随机查询记录的sql语句http://www.blogjava.net/wangdetian168/archive/2013/11/02/405919.htmlsanmaosanmaosat, 02 nov 2013 03:35:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/11/02/405919.htmlhttp://www.blogjava.net/wangdetian168/comments/405919.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/11/02/405919.html#feedback2http://www.blogjava.net/wangdetian168/comments/commentrss/405919.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/405919.html随机查询指定人员的一条未读消息
 
帮助消息表 s_msg_hint
帮助消息id smh_id number(20) pk
帮助消息内容 smh_text varchar2(200)
 
人员帮助消息表 s_hintpeople
人员id shp_uid varchar2(20) pk
当前帮助消息id smh_id number(20)  pk fk
 
如果为已读消息会在 人员帮助消息表里面生成记录
 
select
    *
from
    (select
        smh.*,
        nvl2( shp.smh_id,1,0) as status --0:未读 1:已读
    from
        s_msg_hint smh
                left join s_hintpeople shp 
                    on smh.smh_id = shp.smh_id 
                    and shp.shp_uid = 'p_chencc'
    order by
        dbms_random.value  --随机数值排序
    )
where
    status = 0 and --未读消息
    rownum <= 1  --取一条
 
查询随机的记录的各个数据库的语法
 

1. oracle,随机查询10条

select * from

(
 select  *  from table1
 order by dbms_random.value

)
 where rownum <= 20;

 

2.ms sql server,随机查询10条

select top 10  * from  table1 order by newid()

 

3.my sql:,随机查询10条

select  from  table1 order by rand() limit 20

 

 


sanmao 2013-11-02 11:35 发表评论
]]>
sqlserver 替换非字母数字汉字函数http://www.blogjava.net/wangdetian168/archive/2013/11/01/405900.htmlsanmaosanmaofri, 01 nov 2013 07:06:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/11/01/405900.htmlhttp://www.blogjava.net/wangdetian168/comments/405900.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/11/01/405900.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/405900.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/405900.htmlas
begin
 declare @i int
 while patindex('%[^0-9,^a-z,^a-z,^阿-座,^' char(32) ']%',@s)>0
 begin
   set @i=patindex('%[^0-9,^a-z,^a-z,^阿-座,^' char(32) ']%',@s)
   set @s=stuff(@s,@i,1,' ')
 end
 set @s=replace(@s,'^','')
 set @s=replace(@s,' ','')
 return @s
 end

sanmao 2013-11-01 15:06 发表评论
]]>
sqlserver binary varbinary image 字段类型的区别http://www.blogjava.net/wangdetian168/archive/2013/10/05/404697.htmlsanmaosanmaosat, 05 oct 2013 05:37:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/10/05/404697.htmlhttp://www.blogjava.net/wangdetian168/comments/404697.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/10/05/404697.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/404697.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/404697.html
固定长度的二进制数据,其最大长度为 8,000 个字节。

varbinary

可变长度的二进制数据,其最大长度为 8,000 个字节。

image

可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节

text

服务器代码页中的可变长度非 unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。

sanmao 2013-10-05 13:37 发表评论
]]>
oracle 11g 下载|oracle 11g 凯发k8网页登录官网下载|oracle 11g 凯发k8网页登录官网下载 带登录用户和密码http://www.blogjava.net/wangdetian168/archive/2013/09/09/oracle-11g-xiazai-guanwang.htmlsanmaosanmaomon, 09 sep 2013 10:07:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/09/09/oracle-11g-xiazai-guanwang.htmlhttp://www.blogjava.net/wangdetian168/comments/403858.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/09/09/oracle-11g-xiazai-guanwang.html#feedback43http://www.blogjava.net/wangdetian168/comments/commentrss/403858.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/403858.htmloracle database 11g release 2 standard edition and enterprise edition software downloads
oracle 数据库 11g 第 2 版 标准版、
企业版 软件下载

oracle 下载还需要用户名我自己注册了个方便大家使用下载
直接点击提示找不到 这个要经过oracle 的凯发k8网页登录官网许可 所以最简单的用迅雷下载就行了也不用帐号密码 直接能下载

user:1603869780@qq.com
pass:qwe123qwe



适用于 microsoft windows(32 位)的 oracle database 11g 第 2 版 (11.2.0.1.0)

适用于 microsoft windows(32 位)的 oracle database 11g 第 2 版 client (11.2.0.1.0)

适用于 microsoft windows(32 位)的 oracle fusion middleware web tier utilities 11g (11.1.1.2.0)

适用于 microsoft windows(32 位)的 oracle database gateways 11g 第 2 版 (11.2.0.1.0)

oracle database 11g 第 2 版 examples

适用于 microsoft windows(32 位)的 oracle de-install utility (11.2.0.1.0)

 microsoft windows (x64) 光盘 1、光盘 2 (2gb)
适用于 microsoft windows (x64) 的 oracle database 11g 第 2 版 (11.2.0.1.0)

适用于 microsoft windows (x64) 的 oracle database 11g 第 2 版 client (11.2.0.1.0)

适用于 microsoft windows (x64) 的 oracle database 11g 第 2 版 grid infrastructure (11.2.0.1.0)

适用于 microsoft windows (x64) 的 oracle fusion middleware web tier utilities 11g (11.1.1.2.0)

适用于 microsoft windows (x64) 的 oracle database gateways 11g 第 2 版 (11.2.0.1.0)

oracle database 11g 第 2 版 examples

适用于 microsoft windows (x64) 的 oracle de-install utility (11.2.0.1.0)

 linux x86 光盘 1、光盘 2 (2gb)

适用于 linux x86 的 oracle database 11g 第 2 版 (11.2.0.1.0)

适用于 linux x86 的 oracle database 11g 第 2 版 client (11.2.0.1.0)

适用于 linux x86 的 oracle database 11g 第 2 版 grid infrastructure (11.2.0.1.0)

oracle database 11g 第 2 版 examples

适用于 linux x86 的 oracle de-install utility (11.2.0.1.0)

 linux x86-64 光盘 1、光盘 2 (2gb)
适用于 linux x86-64 的 oracle database 11g 第 2 版 (11.2.0.1.0)

适用于 linux x86-64 的 oracle database 11g 第 2 版 client (11.2.0.1.0)

适用于 linux x86-64 的 oracle database 11g 第 2 版 grid infrastructure (11.2.0.1.0)

oracle database 11g 第 2 版 examples

适用于 linux x86-64 的 oracle database gateways 11g 第 2 版 (11.2.0.1.0)

适用于 linux x86-64 的 oracle de-install utility (11.2.0.1.0)

 solaris (sparc)(64 位) 光盘 1、光盘 2 (2gb)
适用于 solaris 操作系统 (sparc)(64 位)的 oracle 数据库 11g 第 2 版 (11.2.0.1.0)

适用于 solaris 操作系统 (sparc) 的 oracle 数据库 11g 第 2 版客户端 (11.2.0.1.0)
  (64位)
 (32位)

适用于 solaris 操作系统 (sparc)(64 位)的 oracle 数据库 11g 第 2 版网格基础架构 (11.2.0.1.0)

适用于 solaris 操作系统 (sparc)(64 位)的 oracle 数据库 11g 第 2 版示例

适用于 solaris 操作系统 (sparc)(64 位)的 oracle 数据库网关 11g 第 2 版 (11.2.0.1.0)

适用于 solaris 操作系统 (sparc) 的 oracle de-install utility (11.2.0.1.0)
 (64位)
(32位)
 solaris (x86-64) 光盘 1、光盘 2 (2gb)
适用于 solaris 操作系统 (x86-64) 的 oracle 数据库 11g 第 2 版 (11.2.0.1.0)

适用于 solaris 操作系统 (x86-64) 的 oracle 数据库 11g 第 2 版客户端 (11.2.0.1.0)
 (64位)
 (32位)

适用于 solaris 操作系统 (x86-64) 的 oracle 数据库 11g 第 2 版网格基础架构 (11.2.0.1.0)

适用于 solaris 操作系统 (x86-64) 的 oracle 数据库 11g 第 2 版示例

适用于 solaris 操作系统 (x86-64) 的 oracle de-install utility (11.2.0.1.0)
 (64位)
  (32位)
 hp-ux itanium 光盘 1、光盘 2 (2gb)
适用于 hp-ux itanium 的 oracle 数据库 11g 第 2 版 (11.2.0.1.0)

适用于 hp-ux itanium 的 oracle database 11g 第 2 版 client (11.2.0.1.0)
 (64位)
(32位)

适用于 hp-ux itanium 的 oracle 数据库 11g 第 2 版 grid infrastructure (11.2.0.1.0)

适用于 hp-ux itanium 的 oracle database 11g 第 2 版 examples (11.2.0.1.0)

适用于 hp-ux itanium 的 oracle database gateways 11g 第 2 版 (11.2.0.1.0)

适用于 hp-ux itanium 的 oracle de-install utility (11.2.0.1.0)
 (64位)
 (32位)
 aix (ppc64) 光盘 1、光盘 2 (2gb)
适用于 aix (ppc64) 的 oracle database 11g 第 2 版 (11.2.0.1.0)

适用于 aix 的 oracle database 11g 第 2 版 client (11.2.0.1.0)
 (64位)
 (32位)

适用于 aix (ppc64) 的 oracle database 11g 第 2 版 grid infrastructure (11.2.0.1.0)

适用于 aix (ppc64) 的 oracle database gateways 11g 第 2 版 (11.2.0.1.0)

适用于 aix 的 oracle de-install utility (11.2.0.1.0)
  (64位)
  (32位)



sanmao 2013-09-09 18:07 发表评论
]]>
sqlserver 2008 r2下载地址|凯发k8网页登录官网下载地址|迅雷下载地址http://www.blogjava.net/wangdetian168/archive/2013/09/01/403539.htmlsanmaosanmaosun, 01 sep 2013 14:04:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/09/01/403539.htmlhttp://www.blogjava.net/wangdetian168/comments/403539.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/09/01/403539.html#feedback3http://www.blogjava.net/wangdetian168/comments/commentrss/403539.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/403539.html阅读全文

sanmao 2013-09-01 22:04 发表评论
]]>
win7 不能创建文件夹的解决方法http://www.blogjava.net/wangdetian168/archive/2013/08/21/403143.htmlsanmaosanmaowed, 21 aug 2013 09:35:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/08/21/403143.htmlhttp://www.blogjava.net/wangdetian168/comments/403143.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/08/21/403143.html#feedback3http://www.blogjava.net/wangdetian168/comments/commentrss/403143.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/403143.htmlreg delete hkey_classes_root\directory\background\shellex\contextmenuhandlers /f
reg add hkey_classes_root\directory\background\shellex\contextmenuhandlers\new /ve /d {d969a300-e7ff-11d0-a93b-00a0c90f2719}

拷贝到记事本里 保存成modify.cmd
然后双击运行就可以了

sanmao 2013-08-21 17:35 发表评论
]]>
codesmith 入门介绍【转载】http://www.blogjava.net/wangdetian168/archive/2013/06/15/400572.htmlsanmaosanmaosat, 15 jun 2013 07:31:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/06/15/400572.htmlhttp://www.blogjava.net/wangdetian168/comments/400572.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/06/15/400572.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/400572.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/400572.html阅读全文

sanmao 2013-06-15 15:31 发表评论
]]>
替换非数字正则事件http://www.blogjava.net/wangdetian168/archive/2013/06/13/400496.htmlsanmaosanmaothu, 13 jun 2013 00:45:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/06/13/400496.htmlhttp://www.blogjava.net/wangdetian168/comments/400496.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/06/13/400496.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/400496.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/400496.html        {
            var textbox = (sender as textbox);
            if (textbox == null) return;
            textbox.text = regex.replace(textbox.text,"[^\\d\\.] ","");
            textbox.selectionstart = textbox.text.length;
        }

sanmao 2013-06-13 08:45 发表评论
]]>
自动绑定控件到实体代码参考http://www.blogjava.net/wangdetian168/archive/2013/06/09/400447.htmlsanmaosanmaosun, 09 jun 2013 09:13:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/06/09/400447.htmlhttp://www.blogjava.net/wangdetian168/comments/400447.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/06/09/400447.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/400447.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/400447.htmlusing system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.reflection;
using system.io;
using system.text;

namespace projectdemo.common
{
    public static class entitycopy
    {
        
         #region
         ///

        /// 通过搜索页面对应控件来构造model对象(要求控件必须以“_model的属性名”来命名(如:_name),并大小写一致)

        ///

        /// 要构造的model对象()

        /// 控件的容器(比如page或者master的站位控件)

        /// 返回参数里model

        public static t getmodel(t model, control parentcontrol)

        {

            type t = model.gettype();

            propertyinfo[] pi = t.getproperties();

            foreach (propertyinfo p in pi)

            {

                setcontrolvaluetomodel(model, p, parentcontrol);

            }

            return model;

        }

 

        ///

        /// 把页面控件上的值赋值给model对象(要求控件必须以“_model的属性名”来命名(如:_name),并大小写一致)

        ///

        /// 要赋值的model对象

        /// 某个属性

        /// 控件的容器(比如page或者master的站位控件)

        private static void setcontrolvaluetomodel(object model, propertyinfo p, control parentcontrol)

        {

            control control = parentcontrol.findcontrol("_" p.name);

            if (control != null)

            {

                type t_c = control.gettype();

                switch (t_c.fullname)

                {

                    case "system.web.ui.webcontrols.textbox": setvalue(model, p, ((textbox)control).text); break;

                    case "system.web.ui.webcontrols.checkbox": setvalue(model, p, ((checkbox)control).checked); break;

                    case "system.web.ui.webcontrols.checkboxlist":

                        checkboxlist cbl = ((checkboxlist)control);

                        stringbuilder sb = new stringbuilder();

                        for (int i = 0; i < cbl.items.count; i )

                        {

                            if (cbl.items[i].selected)

                            {

                                sb.append(i);

                                sb.append(",");

                            }

                        }

                        setvalue(model, p, sb.tostring().trimend(',')); break;

                    case "system.web.ui.webcontrols.image": setvalue(model, p, ((image)control).imageurl); break;

                    case "system.web.ui.webcontrols.dropdownlist": setvalue(model, p, ((dropdownlist)control).selectedvalue); break;

                    case "system.web.ui.webcontrols.radiobuttonlist": setvalue(model, p, ((radiobuttonlist)control).selectedvalue); break;

                    case "system.web.ui.webcontrols.hiddenfield": setvalue(model, p, ((hiddenfield)control).value); break;

                    default: break;

                }

            }

        }

 

        ///

        /// 把值赋给指定model对象指定属性上

        ///

        /// 需要赋值的model对象

        /// 某个属性

        /// 要赋给model的属性的值

        private static void setvalue(object model, propertyinfo p, object value)

        {

            if (p.propertytype.fullname == "system.guid")

            {

                p.setvalue(model, new guid(value.tostring()), null);

            }

            else

            {

                p.setvalue(model, convert.changetype(value, p.propertytype), null);

            }

        }

 

        #endregion

 

        #region 反射model绑定页面控件

 

        ///

        /// 绑定model的值到页面上对应控件(要求控件必须以“_model的属性名”来命名(如:_name),并大小写一致)

        ///

        /// 赋好值的model

        /// 控件的容器(比如page或者master的站位控件)

        public static void bindcontrols(object model, control parentcontrol)

        {

            type t = model.gettype();

            propertyinfo[] pi = t.getproperties();

            foreach (propertyinfo p in pi)

            {

                setmodelvaluetocontrol(model, p, parentcontrol);

            }

        }

 

        ///

        /// 把model的值赋给页面上的控件(目前只针对web)

        ///

        /// 赋好值的model

        /// model的某个属性

        /// 控件的容器(比如page或者master的站位控件)

        private static void setmodelvaluetocontrol(object model, propertyinfo p, control parentcontrol)

        {

            control control = parentcontrol.findcontrol("_" p.name);

            if (control != null)

            {

                type t_c = control.gettype();

                switch (t_c.fullname)

                {
                    case "system.web.ui.webcontrols.textbox": ((textbox)control).text = p.getvalue(model, null).tostring(); break;
                    case "system.web.ui.webcontrols.label": ((label)control).text = p.getvalue(model, null).tostring(); break;

                    case "system.web.ui.webcontrols.literal": ((literal)control).text = p.getvalue(model, null).tostring(); break;

                  

                    case "system.web.ui.webcontrols.image": ((image)control).imageurl = p.getvalue(model, null).tostring(); break;

                    case "system.web.ui.webcontrols.dropdownlist": ((dropdownlist)control).selectedvalue = p.getvalue(model, null).tostring(); break;

                    case "system.web.ui.webcontrols.radiobuttonlist": ((radiobuttonlist)control).selectedvalue = p.getvalue(model, null).tostring(); break;

                    case "system.web.ui.webcontrols.checkbox": ((checkbox)control).checked = (bool)p.getvalue(model, null); break;

                    case "system.web.ui.webcontrols.checkboxlist":

                        string[] arr = ((string)p.getvalue(model, null)).split(',');

                        checkboxlist cbl = ((checkboxlist)control);

                        for (int i = 0; i < arr.length; i )

                        {

                            cbl.items[int.parse(arr[i])].selected = true;

                        }

                        break;

                    case "system.web.ui.webcontrols.hiddenfield": ((hiddenfield)control).value = p.getvalue(model, null).tostring(); break;

                    default: break;

                }

            }

        }

           #endregion

 


    }
    public class person
    {
        public string name { set; get; }
        public string sex { set; get; }
    }
}



sanmao 2013-06-09 17:13 发表评论
]]>
英语12个月http://www.blogjava.net/wangdetian168/archive/2013/04/09/397557.htmlsanmaosanmaotue, 09 apr 2013 01:19:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/04/09/397557.htmlhttp://www.blogjava.net/wangdetian168/comments/397557.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/04/09/397557.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/397557.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/397557.html二月february
三月march
四月april
五月may
六月june
七月july
八月august
九月september
十月october
十一月november
十二月december

sanmao 2013-04-09 09:19 发表评论
]]>
.net 面试题http://www.blogjava.net/wangdetian168/archive/2013/03/29/397144.htmlsanmaosanmaofri, 29 mar 2013 04:27:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/03/29/397144.htmlhttp://www.blogjava.net/wangdetian168/comments/397144.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/03/29/397144.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/397144.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/397144.html阅读全文

sanmao 2013-03-29 12:27 发表评论
]]>
维生素与人体表现关系http://www.blogjava.net/wangdetian168/archive/2013/03/18/396622.htmlsanmaosanmaomon, 18 mar 2013 14:48:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/03/18/396622.htmlhttp://www.blogjava.net/wangdetian168/comments/396622.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/03/18/396622.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/396622.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/396622.html         1.  眼干涩: 缺维生素a、胡萝卜素­

  2.口臭 : 缺维生素b6、锌­

  3.牙齿不坚固: 缺维生素a、钙、铁­

  4.唇干燥、脱皮: 缺维生素a、b2­

  5.贫血、手脚发凉: 缺维生素b6、铁叶酸­

  6.易疲劳、精力差: 缺维生素b1、b2、b6­

  7.脱发过多、头皮屑过多: 缺维生素a、b6、锌、钙­

  8.头发枯黄、分叉: 缺维生素e、铁­

  9.黑眼圈: 缺维生素a、c、e­

  10.出现色斑、黄褐斑: 缺维生素c、e、叶酸­

  11.皱纹出现早、多: 缺维生素a、c、e、硒­

  12.皮肤无弹性、无光泽: 缺维生素b1、b2­

  13.皮肤干燥、粗糙毛孔粗大: 缺维生素a、b6、锌­

  14.发育迟缓:缺维生素a、b1、b2­

  15.视力差、眼睛怕光、干涩: 缺维生素a、b1、b2、硒­



sanmao 2013-03-18 22:48 发表评论
]]>
mysql单列索引和组合索引的区别介绍http://www.blogjava.net/wangdetian168/archive/2013/02/12/395302.htmlsanmaosanmaotue, 12 feb 2013 04:20:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/02/12/395302.htmlhttp://www.blogjava.net/wangdetian168/comments/395302.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/02/12/395302.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/395302.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/395302.html

blogjava-凯发k8网页登录

mysql数据库在使用时,要注意到mysql单列索引和组合索引的区别。下文对单列索引和组合索引的区别作了详尽的阐述,供您参考。

  mysql单列索引是我们使用mysql数据库中经常会见到的,mysql单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习。

  为了形象地对比两者,再建一个表:

create table myindex ( i_testid int not null auto_increment,
vc_name varchar(50) not null,
vc_city varchar(50) not null, i_age int not null, i_schoolid int not null,
primary key (i_testid) );

 

  在这 10000 条记录里面 7 上 8 下地分布了 5 条 vc_name="erquan" 的记录,只不过 city,age,school 的组合各不相同。

  来看这条t-sql:

select i_testid from myindex where vc_name='erquan' and vc_city='郑州' and i_age=25;

 

  首先考虑建mysql单列索引:

  在vc_name列上建立了索引。执行 t-sql 时,mysql 很快将目标锁定在了vc_name=erquan 的 5 条记录上,取出来放到一中间结果集。在这个结果集里,先排除掉 vc_city 不等于"郑州"的记录,再排除 i_age 不等于 25 的记录,最后筛选出唯一的符合条件的记录。

  虽然在 vc_name 上建立了索引,查询时mysql不用扫描整张表,效率有所提高,但离我们的要求还有一定的距离。同样的,在 vc_city 和 i_age 分别建立的mysql单列索引的效率相似。

  为了进一步榨取 mysql 的效率,就要考虑建立组合索引。就是将 vc_name,vc_city,i_age 建到一个索引里:

alter table myindex add index name_city_age (vc_name(10),vc_city,i_age);

 

  建表时,vc_name 长度为 50,这里为什么用 10 呢?因为一般情况下名字的长度不会超过 10,这样会加速索引查询速度,还会减少索引文件的大小,提高 insert 的更新速度。

  执行 t-sql 时,mysql 无须扫描任何记录就到找到唯一的记录。

  肯定有人要问了,如果分别在 vc_name,vc_city,i_age 上建立单列索引,让该表有 3 个单列索引,查询时和上述的组合索引效率一样吗?大不一样,远远低于我们的组合索引。虽然此时有了三个索引,但 mysql 只能用到其中的那个它认为似乎是最有效率的单列索引。

  建立这样的组合索引,其实是相当于分别建立了

vc_name,vc_city,i_age vc_name,vc_city vc_name

 

  这样的三个组合索引!为什么没有 vc_city,i_age 等这样的组合索引呢?这是因为 mysql 组合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个 t-sql 会用到:

select * from myindex whree vc_name="erquan" and vc_city="郑州"

select * from myindex whree vc_name="erquan"

 

  而下面几个则不会用到:

select * from myindex whree i_age=20 and vc_city="郑州"
select * from myindex whree vc_city="郑州"


sanmao 2013-02-12 12:20 发表评论
]]>
为什么要上市http://www.blogjava.net/wangdetian168/archive/2013/01/25/394770.htmlsanmaosanmaofri, 25 jan 2013 08:09:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/01/25/394770.htmlhttp://www.blogjava.net/wangdetian168/comments/394770.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/01/25/394770.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/394770.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/394770.html


大公司的一年盈亏是没有什么意义的

几周前,我问集团公司副总,为什么我们公司要融资,难道就为了圈钱


他说,可以说是圈钱,但不完整

一个公司的规模到达一个程度后,对于流动资金的需求是非常非常的大


当我们得到一个大项目的单子,可能需要2年才能拿到设计费,这段时间里,所有的成本都是公司负责的。


当公司小,老板有多少钱,干多大的项目

当公司很大时,拿下很多项目,但都无法一时收到钱


那么就需要非常的大的流动资金,银行贷款是最佳选择

可惜对于很多企业,银行是不贷款的,因为你没有什么可以抵押的


所以只能搞风投,搞融资

拿到钱,扩大项目,能到收到项目费用后,需要对资方提供大比例的分成


sanmao 2013-01-25 16:09 发表评论
]]>
蜂蜜的营养|蜂蜜的作用http://www.blogjava.net/wangdetian168/archive/2013/01/21/394518.htmlsanmaosanmaomon, 21 jan 2013 14:03:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/01/21/394518.htmlhttp://www.blogjava.net/wangdetian168/comments/394518.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/01/21/394518.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/394518.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/394518.html  蜂蜜是一种保健食品,味道甜蜜,所含的单糖,不需要经消化就可以被人体吸收。新鲜成熟的蜂蜜含有70%以上的转化糖(葡萄糖和果糖),少量的蔗糖(5%以下),酶类,蛋白质,氨基酸,维生素,矿物质,抗菌素类的物质。

1、蜂蜜含有70%以上的转化糖,能够被人体肠壁细胞直接吸收利用,没有必要经人体消化,这对于儿童、老年人以及病后恢复者来说尤为重要;经常服用蜂蜜,能帮助消化。

2、蜂蜜中含有人体所需的十几种氨基酸,多种活性酶和一些丰富的常量、微量元素。蜂蜜又不含脂肪,这对于老年人、高血压和心脏病患者来说,是最佳的天然食品。

3、蜂蜜富含钙和磷,对于儿童骨质的形成和老年人缺钙症是最佳的补品。蜂蜜在人体内产生的热量相当于牛奶的15倍;vb含量与鸡蛋相等,相当于葡萄糖、苹果的16倍。服用蜂蜜能够迅速恢复疲劳,增强耐力,延迟衰老,延年益寿。[美食中国]

4、蜂蜜富含有丰富的矿物质,如有益身心的钾,起镇静作用的镁,强筋健骨的钙,增补血液的铁、铜,健脑的磷和有益身体的各种维生素。

5、 蜂蜜具有强烈的杀菌抗菌功效。经常食用蜂蜜,不仅对牙齿无妨碍,还能起到口腔杀菌消毒的作用。将蜂蜜当做皮肤伤口敷料时,细菌无法生长。蜂蜜还能治疗中度的皮肤伤害,能有效洁净受细菌感染的伤口,防止伤口化脓;也能治疗皮肤溃烂,只需在伤口表面涂抹蜂蜜,加以包扎便行。蜂蜜对火伤、灼伤的功效也很好,在受伤後马上涂上蜂蜜敷治,蜂蜜能吸收伤口的水分,防止水肿,若混入少许面粉涂抹,更可防留疤痕。

sanmao 2013-01-21 22:03 发表评论
]]>
解决方法:an error occurred on the server when processing the url. please contact the system administratorhttp://www.blogjava.net/wangdetian168/archive/2013/01/20/394469.htmlsanmaosanmaosun, 20 jan 2013 12:09:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/01/20/394469.htmlhttp://www.blogjava.net/wangdetian168/comments/394469.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/01/20/394469.html#feedback3http://www.blogjava.net/wangdetian168/comments/commentrss/394469.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/394469.html

    an error occurred on the server when processing the url. please contact the system administrator


    解决方法如下:
    打开iis7的asp设置,展开“调试属性”选项,“将错误发送到浏览器”这项默认的是false,改为true,然后点右侧的应用!



sanmao 2013-01-20 20:09 发表评论
]]>
winrar 4.20 注册码 |破解http://www.blogjava.net/wangdetian168/archive/2013/01/20/394468.htmlsanmaosanmaosun, 20 jan 2013 11:48:00 gmthttp://www.blogjava.net/wangdetian168/archive/2013/01/20/394468.htmlhttp://www.blogjava.net/wangdetian168/comments/394468.htmlhttp://www.blogjava.net/wangdetian168/archive/2013/01/20/394468.html#feedback1http://www.blogjava.net/wangdetian168/comments/commentrss/394468.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/394468.htmlwinrar 4.20 beta2注册文件

winrar 4.20 beta2 working key

=================================================

rar registration data
wncn
unlimited company license
uid=1b064ef8b57de3ae9b52
64122122509b52e35fd885373b214a4a64cc2fc1284b77ed14fa20
66ebfca6509f9813b32960fce6cb5ffde62890079861be57638717
7131ced835ed65cc743d9777f2ea71a8e32c7e593cf66794343565
b41bcf56929486b8bcdac33d50ecf7739960627351a9ef03353a0e
592b327cd80645472f0ee622d1915028a9e05298e593db36384f0f
f46afd5fed9b0bd095d1788266b81494b976f78fb1c551ca60a054
b17ad853ab902058b42c6887e1b3d40e0b45abf37de02106056887


使用方法:在winrar安装文件夹下新建文件rarreg.key,用记事本打开rarreg.key把上面的内容复制到记事本再把rarreg.key里保存即可。



sanmao 2013-01-20 19:48 发表评论
]]>
request获取url各种信息的方法例子http://www.blogjava.net/wangdetian168/archive/2012/12/23/393372.htmlsanmaosanmaosun, 23 dec 2012 09:33:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/12/23/393372.htmlhttp://www.blogjava.net/wangdetian168/comments/393372.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/12/23/393372.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/393372.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/393372.html

1、request获取url各种信息的方法

  测试的url地址:http://www.test123.com/testweb/default.aspx, 结果如下:

  request.applicationpath: /testweb
  request.currentexecutionfilepath: /testweb/default.aspx
  request.filepath: /testweb/default.aspx
  request.path: /testweb/default.aspx
  request.pathinfo:
  request.physicalapplicationpath: e:\www\testweb\
  request.physicalpath: e:\www\testweb\default.aspx
  request.rawurl: /testweb/default.aspx
  request.url.absolutepath: /testweb/default.aspx
  request.url.absoluteuri:
  request.url.host: www.test.com
  request.url.localpath: /testweb/default.aspx



sanmao 2012-12-23 17:33 发表评论
]]>
codesmith 学习知识点http://www.blogjava.net/wangdetian168/archive/2012/12/23/393368.htmlsanmaosanmaosun, 23 dec 2012 07:12:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/12/23/393368.htmlhttp://www.blogjava.net/wangdetian168/comments/393368.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/12/23/393368.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/393368.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/393368.html

本文来自:http://blog.okbase.net/haobao/archive/32.html

表格名称

<%@ property name="sourcetable" type="schemaexplorer.tableschema" category="1. context" description="table that the documentation should be based on." %>

<%=sourcetable%>

不含dbowner的表格名称

<%=sourcetable.name%>

将表中所有列名作为参数

void myfunction(<% for (int i = 0; i < sourcetable.columns.count; i ) { %><%=csharpalias[sourcetable.columns[i].systemtype.fullname]%> <%=sourcetable.columns[i].name%><% if (i < sourcetable.columns.count-1) { %>, <% } %><% } %>)

主键列名

sourcetable.primarykey.membercolumns[0].name

主键的sql数据类型

sourcetable.primarykey.membercolumns[0].nativetype

列名

sourcetable.columns[i].name

列的数据长度

sourcetable.columns[i].size

列的系统数据类型

sourcetable.columns[i].systemtype.fullname

sql本地数据类型转换到sqldbtype类型

<%@ map name="sqlnativesqldb" src="sqlnativetype-sqldbtype" description="sqlnativetype to sqldbtype map" %>

public string getsqldbtype(columnschema column)

{

return sqlnativesqldb[column.nativetype.tostring()];

}

自己写的方法:

getsqldbtype(sourcetable.columns[i])

public string getsqldbtype(columnschema column)

{

switch (column.nativetype.tolower())

{

case "bigint": return "sqldbtype.bigint";

case "binary": return "sqldbtype.binary";

case "bit": return "sqldbtype.bit";

case "char": return "sqldbtype.char";

case "datetime": return "sqldbtype.datetime";

case "decimal": return "sqldbtype.decimal";

case "float": return "sqldbtype.float";

case "image": return "sqldbtype.image";

case "int": return "sqldbtype.int";

case "money": return "sqldbtype.money";

case "nchar": return "sqldbtype.nchar";

case "ntext": return "sqldbtype.ntext";

case "numeric": return "sqldbtype.decimal";

case "nvarchar": return "sqldbtype.nvarchar";

case "real": return "sqldbtype.real";

case "smalldatetime": return "sqldbtype.smalldatetime";

case "smallint": return "sqldbtype.smallint";

case "smallmoney": return "sqldbtype.smallmoney";

case "sql_variant": return "sqldbtype.variant";

case "sysname": return "sqldbtype.nchar";

case "text": return "sqldbtype.text";

case "timestamp": return "sqldbtype.timestamp";

case "tinyint": return "sqldbtype.tinyint";

case "uniqueidentifier": return "sqldbtype.uniqueidentifier";

case "varbinary": return "sqldbtype.varbinary";

case "varchar": return "sqldbtype.varchar";

default: return "__unknown__" column.nativetype;

}

}

系统数据类型转换为c#数据类型

<%@ map name="csharpalias" src="system-csharpalias" description="system to c# type map" %>

csharpalias[sourcetable.columns[i].systemtype.fullname]

sql server数据类型转换到c#数据类型

<%@ map name="sqlcsharp" src="sql-csharp" description="sql server data type to c# data type map" %>

public string getcsharptype(columnschema column)

{

return sqlcsharp[column.nativetype.tostring()];

}

判断是否为自增长列

if( ((bool)sourcetable.columns[i].extendedproperties["cs_isidentity"].value) == true)

{

response.write(sourcetable.columns[i].name);

}

让codesmith支持中文

1)tools->options...->studio->editor->enable unicode support将这个选项勾上。

2)在模板文件的codetemplate声明中加上responseencoding="utf-8 "属性:

<%@ codetemplate responseencoding="utf-8" targetlanguage="text" src="" inherits="" debug="false" compilerversion="v3.5" description="template description here." %>

 

其它参考信息:

/r/n   /r是换行 /n是回车换行

schemaexplorer.tableschema类:是codesmith中自带的一个类,它描述表的结构。

name属性:表的名称

columns属性:表中列的集合

extendedproperties属性:表中指定列的扩展信息

foreignkeycolumns属性:表的一个外键列的集合

foreignkeys属性:表的外键集合

hasprimarykey属性:返回表中是否存在主键

nonforeignkeycolumns属性:表中非外键列的集合

nonkeycolumns属性:表中非外键,非主键列的集合

nonprimarykeycolumns属性:表中非主键列的集合

primarykey属性:表中的主键

表中指定列的扩展属性 (extendedproperties属性):

  cs_isidentity:自增长列

  cs_iscomputed :计算列

  cs_identityseed :自增长列的起始值

  cs_identityincrement :自增长列的步长

  cs_default :列的默认值



sanmao 2012-12-23 15:12 发表评论
]]>
什么是离散式制造业http://www.blogjava.net/wangdetian168/archive/2012/12/17/393102.htmlsanmaosanmaomon, 17 dec 2012 06:34:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/12/17/393102.htmlhttp://www.blogjava.net/wangdetian168/comments/393102.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/12/17/393102.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/393102.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/393102.html
一、何为离散制造

制造业按其产品制造工艺过程特点总体上可概括为连续制造和离散制造。相对于连续制造,离散制造的产品往往由多个零件经过一系列并不连续的工序的加工最终装配而成。加工和销售此类产品的企业可以称为离散制造型企业。例如属于生产资料生产的机械、电子设备制造业,属于生活资料生产的机电整合消费产品制造业。


离散制造型企业一般都包含零部件加工、零部件装配成产品等过程。在这类企业中,有些企业偏重于零部件制造,我们称之为离散加工型企业;有些偏重于装配,我们称之为装配型企业;有些则加工和装配都主要由自身完成,这类企业无论大小,相对前面两类企业来说要复杂一些。整个离散制造业就是由此三类企业相互关连配套而组成的产业链网络。


二、离散制造业的特点


从产品形态来说,离散制造的产品相对较为复杂,包含多个零部件,一般具有相对较为固定的产品结构和零部件配套关系。


从产品种类来说,一般的离散制造型企业都生产相关和不相关的较多品种和系列的产品。这就决定企业物料的多样性。


从加工过程看,离散制造型企业生产过程是由不同零部件加工子过程或并联或串连组成的复杂的过程,其过程中包含着更多的变化和不确定因素。从这个意义上来说,离散制造型企业的过程控制更为复杂和多变。


离散制造型的企业的产能不像连续型企业主要由硬件(设备产能能)决定,而主要以软件(加工要素的配置合理性)决定。同样规模和硬件设施的不同离散型企业因其管理水平的差异导致的结果可能有天壤之别,从这个意义上来说,离散制造型企业通过软件(此处为广义的软件,相对硬件设施而言)方面的改进来提升竞争力更具潜力。


如果说erp对连续工业作用是辅助性的(因其加工流程的刚性,通过软件对其生产周期改进效果甚微),则对于离散制造型企业则是起到决定性的作用,虽然具体到某一个零件或部件加工工艺过程具有一定刚性,但多个零部件关连、组合、配套则决定了其柔性,因此整个过程是可以优化的,制造周期是可以有效缩短的。


三、离散制造业的关注重点

任何企业无论大小,都有自身的业务流程、管理系统和企业组织。


对于离散制造型企业,粗框架的业务流程由以下几个主要业务组成:生产用料采购、物料储存、零部件加工、装配、产品销售等。


对主要的业务流程的管理由以下几个业务管理系统完成:采购管理、仓库管理、生产过程管理、销售管理等。


为有效完成企业业务过程产生了其他辅助职能管理系统,如:财务管理、品质管理、人事管理等。

所有的管理执行都由人来完成,知识合理、职责分明的人被配置在不同部门中,就形成了企业的组织结构。


由于离散型制造企业具有较多的物料(广义的物料),因此其运作和管理是围绕物料及其变化过程展开的。可以说离散制造型企业是以物料为主要操作对象,这些物料有基本信息,其变化过程(形态变化、位置变化、价值增值等)衍生了其他信息,管理系统正是通过对物料的信息处理、分析来决策对实体物流实施何种动作。


总之,离散制造型企业的erp应是以业务管理为目的,以物流为核心的。以业务流程中的物流信息采集、处理、分析来来理顺和规范业务流程。伴随着业务过程的管理与控制,企业的资金流也就自动产生了。


企业目标是为了生产产品、销售产品而产生利润,并不是计算利润。以财务为中心的erp 轻视业务流程的管理与控制而重核算的思路根本是本末倒置。


离散型企业导入erp的关注点:


任何问题的解决都有一个过程,多个问题的同时出现也总得分个轻重缓急。单方面理想化的想解决所有问题,往往使整个项目陷入混乱的境地而难以有效进展。正确的思路应是有步骤地先解决经营管理中瓶颈问题,随着问题的不断解决,瓶颈的转移,暴露新的问题再解决之,使企业的经营管理处于一种动态的持续改善过程中,一劳永逸是不现实的。因此我们说erp导入是一个有始无终的过程就是这个道理。


离散制造型企业导入erp应重点关注以下问题:

1. 基础数据准确及完善产品结构关系

包含:完整的物料信息、物料清单(bom)、产品结构、工作中心、工艺路线和其他企业基本资料。
2.物流管理包括:
销售业务管理

库存管理
采购业务管理
物流数据的分析
3.生产计划
mrp(物料需求计划)的必要性

大量的物料处理通过mrp运算固然可以高效产生采购计划和生产计划,但计算的准确性则依赖于准确的基础信息,包括准确的材料定额、采购和加工提前期、工艺路线、工作中心能力等。而以上几个影响mrp运算准确性的参数,由于本身的多变性,在一般的企业是难以准确提供的,因此对于mrp应有客观认识,其计算结果只具有参考价值,须经过相应修改,而不能直接作为生产运作的依据。

4.生产管理
先完善生产物料管理,在物流数据准确的基础上再进行生产运作的管理。包括包括车间运作管理等。
5.质量管理

质量管理是贯穿于企业生产全生产经营运作的全过程,根据自身情况可以有不同程度的导入。
6.财务管理

业务运行过程中资金流是自动产生的,财务管理只是对资金信息的处理和分析。在业务运作规范正常后准确的财务信息处理是水到渠成的,不可以在基础业务管理尚未理顺时一开始就要求财务数据的准确。

7.其他辅助职能的管理如设备管理、人力资源管理、计量器具管理等由于和主要业务关系不是特别密切,相对较容易实现。不必一开始就特别关注,如果有资金和时间可以逐步导入。


四、cerp(离散企业版)凯发天生赢家一触即发官网的解决方案


erp从本质上来讲,就是以集成化软件融合先进的管理思想及方法,使企业内各业务部门和职能部门依照优化的业务流程有序工作,以达到满足客户需求为最终目的。


从erp的发展历程来看,最早的mrp即应用在离散制造业,尤其是以机械产品制造为主的企业中。从早期库存物料管理到mrp(物料需求规划)到mrp-ii(制造资源规划,已扩充至包含物料需求以外的其他管理方面,如财务、人力资源等)再到erp(理论上纳入了企业资源的各个方面,尤其是对外部资源的配置规划),其应用大多集中在机电产品制造领域,只是近几年才应用于其他类型的制造业。在我国erp的应用过程也是如此,公认最早的mrp-ii即应用于机床装备制造企业。erp理论和erp软件产品也是在对离散制造业的研究和实践中逐步发展、扩充和完善起来的,可以说离散制造业为erp生长的原产地。离散制造业为erp的发展作出了巨大贡献,在获得好处的同时也付出了相当的代价,没有任何一类企业比离散制造业对erp“爱之深而恨之切”。究其原因,抛开erp软件产品鱼龙混杂不说,笔者认为随着erp的多年发展,已经解决了相当多企业的管理问题,这些早期已经解决的问题已为用户熟知而理所当然已经不成为问题了,因而用户对erp提出了暂时超出其应用和控制范围的不太容易解决的需求。由于认识上的差异导致erp供应商与用户对erp的应用效果有不同的预期。我们应该客观地看待这种认识上的不统一,用户为erp提出新的问题,对erp发展和完善有利,开发商应善加利用;但用户也不要认为erp可以包打天下而解决一切问题。


作为国内较早以机械制造企业cad相关产品(pdm)开发、推广的软件供应商,新模式公司的主要客户为离散制造型企业,对离散制造型企业的理解也是较为深刻的,开发离散制造型企业管理软件也是水到渠成的。新模式企业资源规划(简称cerp)也是其管理软件家族的主要成员。


新模式erp(cerp)离散制造型企业版的erp是以mrp为核心的erp。

1cerp是以集成为主导思想


新模式公司在设计及开发erp系统时,从企业整体信息化需求出发,充分考虑了erp系统与pdm系统,oa系统,cad/cam等系统的信息集成,尤其是和新模式产品数据管理(cpdm)及新模式数字办公系统(cdo)的天然集成。因此各系统之间信息传递及时、准确,有利于系统发挥总体效益。


2cerp为企业带来什么

扩大市场份额

企业信息化通过快速了解供应商、市场销售、库存状况及在制品状况快速作出决策达到快速应对市场变化,抢得市场先机;

降低成本

通过快速准确掌握企业资源使用状况来优化资源配置,达到减少库存提高物流周转;

提高效率

通过主动信息共享增加企业内信息透明度,减少信息私有化,提高企业整体效率;

科学决策

通过数据化市场趋势分析及企业经营状况分析制定企业近期产品策略及远景规划,做到科学决策;

产品与技术创新

信息技术极大地提高了企业获取新技术、新工艺、新产品和新思想的效率;

企业形象改善

信息化使得企业有更多机会参与全球竞争,开拓新的事业。

3cerp系统功能(总述)


erp是将企业所有资源进行整合,集成管理,简单的说是对企业的三大流:物流,资金流,信息流进行全面一体化管理的管理信息系统。


在离散制造型企业中,一般的管理主要包括几方面的内容:生产控制(计划、制造)、物流管理(分销、采购、库存管理)、财务管理(会计核算、财务管理)、质量管理和其他辅助管理系统。这几大子系统系统本身就是集成体,它们互相之间有相应的接口,能够很好的整合在一起来对企业进行管理。


4.3.1生产管理子系统


这一部分是cerp系统的核心所在,它将企业的整个生产过程有机的结合在一起,使得企业能够有效的降低库存,提高效率。同时各个原本分散的生产流程的自动连接,也使得生产流程能够前后连贯地进行,而不会出现生产脱节,耽误生产交货时间。


生产控制管理是一个以计划为导向的先进的生产、管理方法。首先,企业确定它的一个总生产计划,再经过系统层层细分后,下达到各部门去执行。即生产部门以此生产,采购部门按此采购等等。


1主生产计划

它是根据生产计划、预测和客户订单的输入来安排将来的各周期中提供的产品种类和数量,它将生产计划转为产品计划,在平衡了物料和能力的需要后,精确到时间、数量的详细的进度计划。是企业在一段时期内的总活动的安排,是一个稳定的计划,是以生产计划、实际订单和对历史销售分析得来的预测产生的。计划管理系统融先进的管理思想于软件设计之中,通过主生产计划mps(master
production schedule)和物料需求计划mrp(material requirement
planning),帮助企业解决需要生产什么和在什么时候生产,以及相关的需要什么物料,在何时购买等问题,从而达到降低库存、提高服务水平(及时交货)的目的。



2物料需求计划(mrp)

在主生产计划决定生产多少最终产品后,再根据物料清单,把整个企业要生产的产品的数量转变为所需生产的零部件的数量,并对照现有的库存量,按照零件提前期和批量策略,生产各车间自制件的零件生产作业计划,外购件采购计划。这才是整个部门真正依照的计划。cerp的物料需求计划主要具有以下几个功能:


l 可按低阶码进行mrp净改变式和重生式计算
l 生成生产订单和采购订单
l 控制生产及采购的最大及最小批量
l
考虑在单量对物料需求的影响

3能力需求计划

它是在得出初步的物料需求计划之后,将所有工作中心的总工作负荷,在与工作中心的能力平衡后产生的详细工作计划,用以确定生成的物料需求计划是否是企业生产能力上可行的需求计划。能力需求计划是一种短期的、当前实际应用的计划。


4车间控制

根据mrp子系统下达的零件生产订单及其相关信息(工艺路线),以工作中心满负荷为目标,根据制定优先级原则安排作业次序,并及时监控每道工序的进度。在报告零部件完工入库时,同时将信息反馈给mrp子系统,
本子系统还具有工作中心负荷情况报告及在制品统计、工时统计等功能,如下:
l 生成车间作业计划书,包括派工单,工作中心的加工任务等
l
维护工作中心,标准工艺路线
l 跟踪所有生产订单的进度,可联机显示派工单和工作中心状态报表
l 工作中心负荷情况报告
l
提供多条件的灵活的生产订单及相关信息查询

5制造数据管理

建立各级物料的主记录和产品逐层展开的隶属结构关系,是各个子系统共享的数据资源。可方便地生成变型产品的结构关系清单,并且具有反查功能,可以方便地进行物料批量替换。基础数据同时包括供生产计划参考的生产提前期及其他子系统需要的基础数据。

在编制计划中需要许多生产基本信息,这些基本信息就是制造标准,包括零件、产品结构、工序和工作中心,都用唯一的代码在计算机中识别。

a零件代码,对物料资源的管理,对每种物料给予唯一的代码识别。
b物料清单,定义产品结构的技术文件,用来编制各种计划。

c工序,描述加工步骤及制造和装配产品的操作顺序。它包含加工工序顺序,指明各道工序的加工设备及所需要的额定工时和工资等级等。

d工作中心,使用相同或相似工序的设备和劳动力组成的,从事生产进度安排、核算能力、计算成本的基本单位。

通过生产管理子系统,可以有效快速制定生产计划,并将企业整个生产过程纳入信息系统之下,对生产过程中的物料使用状况、生产进度状况、人员工作记录等进行在线监控。使整个生产业务在信息系统下一览无余。


4.3.2物流管理子系统


物流管理子系统的使用可以使整个企业的所有纳入信息系统管理的物料进出情况透明,有利于查询统计和追踪,做到高效准确,为精细管理打下基础。同时物流运行中产生的动态信息将作为系统智能分析处理的原始数据,自动传递到其他子系统(财务、综合查询等),是整个系统集成运行的主要数据源。

一、销售管理


销售管理是从产品的销售计划开始,对其销售产品、销售地区、销售客户等各种信息的管理和统计,并可对销售数量、金额、利润、绩效、客户服务做出全面的分析。在销售管理模块中大致有三方面的功能。


1对客户信息的管理和服务

它能建立一个客户信息档案,对其进行分类管理,进而对其进行针对性的客户服务,以达到最高效率的保留老客户、争取新客户。

2销售订单的管理

销售订单是erp的入口,所有的生产计划都是根据它下达并进行排产的。而销售订单的管理是贯穿了产品生产的整个流程。它包括:

a客户信用审核及查询(客户信用分级,来审核订单交易)。
b产品库存查询(决定是否要延期交货、分批发货或用代用品发货等)。

c产品报价(为客户作不同产品的报价)。
d订单输入、变更及跟踪(订单输入后,变更的修正,及订单的跟踪分析)。

e交货期的确认及交货处理(决定交货期和发货事物安排)。

3销售的统计与分析

系统根据销售订单的完成情况,依据各种指标做出统计,比如客户分类统计,销售代理分类统计等等,再就这些统计结果来对企业实际销售效果进行评价:

a销售统计(根据销售形式、产品、代理商、地区、销售人员、金额、数量来分别进行统计)。

b销售分析(包括对比目标、同期比较和订货发货分析,来从数量、金额、利润及绩效等方面作相应的分析)。
c客户服务(客户投诉纪录,原因分析)。


二、库存管理


用来控制存储物料的数量,以保证稳定的物流支持正常的生产,但又最小限度地占用资本。它是一种相关的、动态的、及真实的库存控制系统。它能够结合、满足相关部门的需求,随时间变化动态地调整库存,精确的反映库存现状。这一系统的功能又涉及:


a为所有的物料建立库存,决定何时定货采购,同时作为交与采购部门作采购计划、生产部门作生产计划的依据。

b收到订购物料,经过质量检验入库,生产的产品也同样要经过检验入库。
c收发料的日常业务处理工作。

其主要功能包括:


l 灵活的库存事务定制
l 完整的库存变动历史事务记录
l 具有货位和批次管理功能
l 库存实物盘点和周期盘点

l 库存资金占用统计
l 物料abc分类管理
l 库存活动分析

三、采购管理


以主生产计划和产品材料定额(bom)为依据,计算出采购物资需求量,并根据现有库存,合同资源进行物资供需平衡,产生采购订单,并接收和检验物料;建立供应商档案;维护采购合同记录,到货记录,对采购订单进行多种组合查询并产生报表。其主要功能包括:


l 由主生产计划自动生成请购计划
l 可人工和自动两种方式生成采购订单
l 完善的供应商资料维护
l 允许部分接收

l 对采购件可维护平均成本和最新成本
l 完整的接收模块,并提供收货检验功能
l 提供多条件的灵活的采购订单查询确定


4.3.3财务管理子系统


企业中,清晰分明的财务管理是极其重要的。所以,在erp整个方案中它是不可或缺的一部分。erp中的财务模块与一般的财务软件不同,作为erp系统中的一部分,它和系统的其它模块有相应的接口,能够相互集成,比如:它可将由生产活动、采购活动输入的信息自动计入财务模块生成总账、会计报表,取消了输入凭证繁琐的过程,几乎完全替代以往传统的手工操作。


4.3.4质量管理子系统


质量管理子系统对企业产品生产过程中及售后的质量信息进行全面管理与控制,同时对采购件,委外件的质量进行控制。包括:

l
采购收料检验
l 生产入库检验
l 生产过程(工序)检验
l 委外加工检验
l 售后产品质量信息管理
l
凯发天生赢家一触即发官网的售后服务质量信息管理
l 质量信息统计分析
……

4.3.5其他辅助管理子系统

l 设备管理子系统

对企业设备资源进行管理,主要包括设备台帐、设备折旧、设备维护等管理功能。
l 计量器具管理子系统

完成计量器具台帐、计量器具检测计划及计量器具日常维护等功能
l 领导综合查询平台

基于b/s模式,为企业领导提供企业综合信息查询平台,为企业领导经营决策提供可靠的依据

4.3.6人力资源管理子系统


以往的erp系统基本上都是以生产制造及销售过程(供应链)为中心的。因此,长期以来一直把与制造资源有关的资源作为企业的核心资源来进行管理。但近年来,企业内部的人力资源,开始越来越受到企业的关注,被视为企业的资源之本。在这种情况下,人力资源管理,作为一个独立的模块,被加入到了erp的系统中来,和erp中的财务、生产系统组成了一个高效的、具有高度集成性的企业资源系统。


一.人事行政管理
包括人事政策、档案管理、考勤管理、绩效考核、薪资管理、招聘管理、人员流动管理、福利管理等行政事务管理。


二.人事训练管理
对员工培训事务管理。包括培训计划、课程维护、课程安排、讲师管理、课时统计、培训考核、综合分析等。


三.人力资源规划和辅助决策(人力资源管理的智能管理部分)

本部分为人力资源管理的高端部分,为人力资源基础管理完善规范后的智能应用,国内企业鲜有达到如此程度,在此仅作概念陈述。

对于企业人员、组织结构编制的多种方案,进行模拟比较和运行分析,并辅之以图形的直观评估,辅助管理者做出最终决策。

制定职务模型,包括职位要求、升迁路径和培训计划,根据担任该职位员工的资格和条件,系统会提出针对本员工的一系列培训建议,一旦机构改组或职位变动,系统会提出一系列的职位变动或升迁建议。

进行人员成本分析,可以对过去、现在、将来的人员成本作出分析及预测,并通过erp集成环境,为企业成本分析提供依据。



sanmao 2012-12-17 14:34 发表评论
]]>
http 错误 500.22 - internal server error (win7 iis 配置错误) 解决方法http://www.blogjava.net/wangdetian168/archive/2012/12/13/392954.htmlsanmaosanmaothu, 13 dec 2012 13:44:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/12/13/392954.htmlhttp://www.blogjava.net/wangdetian168/comments/392954.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/12/13/392954.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/392954.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/392954.html阅读全文

sanmao 2012-12-13 21:44 发表评论
]]>
asp.net 缓存设置http://www.blogjava.net/wangdetian168/archive/2012/10/25/390221.htmlsanmaosanmaothu, 25 oct 2012 06:41:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/10/25/390221.htmlhttp://www.blogjava.net/wangdetian168/comments/390221.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/10/25/390221.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/390221.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/390221.htmlasp.net提供三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存api。输出缓存和片段缓存的优点是非常易于实现,在大多数情况下,使用这两种缓存就足够了。而缓存api则提供了额外的灵活性(实际上是相当大的灵活性),可用于在应用程序的每一层利用缓存。本文全面介绍了这三种缓存技术在系统各层中的应用。

    在asp.net提供的许多特性中,缓存支持无疑是我最欣赏的特性,我这样说当然是有充分理由的。相比asp.net的所有其他特性,缓存对应用程序的性能具有最大的潜在影响,利用缓存和其他机制,asp.net开发人员可以接受使用开销很大的控件(例如,datagrid)构建站点时的额外开销,而不必担心性能会受到太大的影响。为了在应用程序中最大程度地利用缓存,您应该考虑在所有程序级别上都实现缓存的方法。

    steve的缓存提示

    尽早缓存;经常缓存

    您应该在应用程序的每一层都实现缓存。向数据层、业务逻辑层、ui或输出层添加缓存支持。内存现在非常便宜-因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高。

    缓存可以防止许多过失

    缓存是一种无需大量时间和分析就可以获得“足够良好的”性能的方法。这里再次强调,内存现在非常便宜,因此,如果您能通过将输出缓存30秒,而不是花上一整天甚至一周的时间尝试优化代码或数据库就可以获得所需的性能,您肯定会选择缓存凯发天生赢家一触即发官网的解决方案(假设可以接受30秒的旧数据)。缓存正是那些利用20%付出获得80%回报的特性之一,因此,要提高性能,应该首先想到缓存。不过,如果设计很糟糕,最终却有可能带来不良的后果,因此,您当然也应该尽量正确地设计应用程序。但如果您只是需要立即获得足够高的性能,缓存就是您的最佳选择,您可以在以后有时间的时候再重新设计应用程序。

    页面级输出缓存

    作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的html的副本。其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高(取决于需要多少开销来创建原始页面输出-发送缓存的输出总是很快,并且比较稳定)。

    实现

    要实现页面输出缓存,只要将一条outputcache指令添加到页面即可。

    <%@ outputcache duration="60" varybyparam="*" %>

    如同其他页面指令一样,该指令应该出现在aspx页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。

    duration 必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。

    location 指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:any、client、downstream、none、server或serverandclient。

    varybyparam 必需属性。request中变量的名称,这些变量名应该产生单独的缓存条目。“none”表示没有变动。“*”可用于为每个不同的变量数组创建新的缓存条目。变量之间用“;”进行分隔。

    varybyheader 基于指定的标头中的变动改变缓存条目。

    varybycustom 允许在global.asax中指定自定义变动(例如,“browser”)。

    利用必需的duration和varybyparam选项的组合可以处理大多数情况。例如,如果您的产品目录允许用户基于categoryid和页变量查看目录页,您可以用参数值为“categoryid;page”的varybyparam将产品目录缓存一段时间(如果产品不是随时都在改变,一小时还是可以接受的,因此,持续时间是3600秒)。这将为每个种类的每个目录页创建单独的缓存条目。每个条目从其第一个请求算起将维持一个小时。

    varybyheader和varybycustom主要用于根据访问页面的客户端对页面的外观或内容进行自定义。同一个url可能需要同时为浏览器和移动电话客户端呈现输出,因此,需要针对不同的客户端缓存不同的内容版本。或者,页面有可能已经针对ie进行了优化,针对netscape或opera则应取消这种优化功能。后一个例子非常普遍,我们将提供一个说明如何实现此目标的示例:

    示例:varybycustom用于支持浏览器自定义

    为了使每个浏览器都具有单独的缓存条目,varybycustom的值可以设置为“browser”。此功能已经内置在缓存模块中,并且将针对每个浏览器名称和主要版本插入单独的页面缓存版本。

    <%@ outputcache duration="60" varybyparam="none" varybycustom="browser"%>

    片段缓存,用户控件输出缓存

    更多选项

    除了上面提到的依赖项,我们还可以指定项的优先级(依次为low、high、notremovable,它们是在system.web.caching.cacheitempriority枚举中定义的)以及当缓存中的对象到期时调用的cacheitemremovedcallback函数。大多数时候,默认的优先级已经足够了-缓存引擎可以正常完成任务并处理缓存的内存管理。cacheitemremovedcallback选项考虑到一些很有趣的可能性,但实际上它很少使用。不过,为了说明该方法,我将提供它的一个使用示例:

    cacheitemremovedcallback示例

    system.web.caching.cacheitemremovedcallback callback = new system.web.caching.cacheitemremovedcallback (onremove);

    cache.insert("key",myfile,null,

    system.web.caching.cache.noabsoluteexpiration,

    timespan.zero,

    system.web.caching.cacheitempriority.default, callback);

    . . .

    public static void onremove(string key, object cacheitem,

    system.web.caching.cacheitemremovedreason reason)

    {

    appendlog("the cached value with key ''" key

    "'' was removed from the cache. reason: "

    reason.tostring());

    }

    该示例将使用appendlog()方法中定义的任何逻辑来记录缓存中的数据到期的原因。通过在从缓存中删除项时记录这些项并记录删除的原因,您可以确定是否在有效地使用缓存或者您是否可能需要增加服务器上的内存。注意,callback是一个静态(在vb中为shared)方法,建议使用该方法的原因是,如果不使用它,保存回调函数的类的实例将保留在内存中,以支持回调(对static/shared方法则没有必要)。

    该特性有一个潜在的用处-在后台刷新缓存的数据,这样用户永远都不必等待数据被填充,但数据始终保持相对较新的状态。但实际上,此特性并不适用于当前版本的缓存api,因为在从缓存中删除缓存的项之前,不触发或不完成回调。因此,用户将频繁地发出尝试访问缓存值的请求,然后发现缓存值为空,不得不等待缓存值的重新填充。我希望在未来的asp.net版本中看到一个附加的回调,可以称为cacheditemexpiredbut

    notremovedcallback,如果定义了该回调,则必须在删除缓存项之前完成执行。

    缓存数据引用模式

    每当我们尝试访问缓存中的数据时,都应该考虑到一种情况,那就是数据可能已经不在缓存中了。因此,下面的模式应该普遍适用于您对缓存的数据的访问。在这种情况下,我们假定已缓存的数据是一个数据表。

    public datatable getcustomers(bool bypasscache)

    {

    string cachekey = "customersdatatable";

    object cacheitem = cache[cachekey] as datatable;

    if((bypasscache) || (cacheitem == null))

    {

    cacheitem = getcustomersfromdatasource();

    cache.insert(cachekey, cacheitem, null,

    datetime.now.addseconds(getcachesecondsfromconfig(cachekey), timespan.zero);

    }

    return (datatable)cacheitem;

    }
 关于此模式,有以下几点需要注意:

    1) 某些值(例如,cachekey、cacheitem和缓存持续时间)是一次定义的,并且只定义一次。

    2) 可以根据需要跳过缓存-例如,当注册一个新客户并重定向到客户列表后,最好的做法可能就是跳过缓存,用最新数据重新填充缓存,该数据包括新插入的客户。

    3) 缓存只能访问一次。这种做法可以提高性能,并确保不会发生nullreferenceexceptions,因为该项在第一次被检查时是存在的,但第二次检查之前就已经到期了。

    4) 该模式使用强类型检查。c#中的“as”运算符尝试将对象转换为类型,如果失败或该对象为空,则只返回null(空)。

    5) 持续时间存储在配置文件中。在理想的情况下,所有的缓存依赖项(无论是基于文件的,或是基于时间的,还是其他类型的依赖项)都应该存储在配置文件中,这样就可以进行更改并轻松地测量性能。我还建议您指定默认缓存持续时间,而且,如果没有为所使用的cachekey指定持续时间,就让getcachesecondsfromconfig()方法使用该默认持续时间。

    与本文相关的代码示例(cacheddemo.msi,参见本书示例光盘)是一个helper类,它将处理上述所有情况,可以只书写一行或两行代码访问缓存的数据。

    小结

    缓存可以使应用程序的性能得到很大的提高,因此在设计应用程序以及对应用程序进行性能测试时应该予以考虑。应用程序总会或多或少地受益于缓存,当然有些应用程序比其他应用程序更适合使用缓存。对asp.net提供的缓存选项的深刻理解是任何asp.net开发人员应该掌握的重要技巧。

    缓存整个页面通常并不可行,因为页面的某些部分是针对用户定制的。不过,页面的其他部分是整个应用程序共有的。这些部分最适合使用片段缓存和用户控件进行缓存。此外,菜单和其他布局元素,尤其是那些从数据源动态生成的元素,也可以用这种方法进行缓存。

    如果需要,可以按以下条件选择需要缓存的控件:

    (1)某控件的属性已改变

    (2)由页面级输出缓存所支持的任何一种页面或控件状态改变

    一旦对某些控件进行了缓存,使用它们的几百个页面就可以共享这些控件,而不再需要为每个页面保留单独的控件缓存版本。

    实现

    片段缓存使用的语法与页面级输出缓存一样,但其应用于用户控件(.ascx文件)而不是web窗体(.aspx文件)。除了location属性,对于outputcache在web窗体上支持的所有属性,用户控件也同样支持。用户控件还支持名为varybycontrol的outputcache属性,该属性将根据用户控件(通常是页面上的控件,例如,dropdownlist)的成员的值改变该控件的缓存。如果指定了varybycontrol,可以省略varybyparam。最后,在默认情况下,对每个页面上的每个用户控件都单独进行缓存。不过,如果一个用户控件不随应用程序中的页面改变,并且在所有页面都使用相同的名称,则可以设置参数shared的值为“true”,该参数将使用户控件的缓存版本供引用该控件的所有页面使用。

    示例

    <%@ outputcache duration="60" varybyparam="*" %>

    该示例将缓存用户控件60秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。

    <%@ outputcache duration="60" varybyparam="none"

    varybycontrol="categorydropdownlist" %>

    该示例将缓存用户控件60秒,并且将针对categorydrop

    downlist控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。

    <%@ outputcache duration="60" varybyparam="none" varybycustom="browser"

    shared="true" %>

    最后,该示例将缓存用户控件60秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的id引用该控件即可)。

    缓存api,使用cache对象

    页面级和用户控件级输出缓存的确是一种可以迅速而简便地提高站点性能的方法,但是在asp.net中,缓存的真正灵活性和强大功能是通过cache对象提供的。使用cache对象,您可以存储任何可序列化的数据对象,基于一个或多个依赖项的组合来控制缓存条目到期的方式。这些依赖项可以包括自从某对象被缓存后经过的时间、自从某对象上次被访问后经过的时间、对文件或文件夹的更改以及对其他缓存对象的更改,在略作处理后还可以包括对数据库中特定表的更改。

    在cache中存储数据

    在cache中存储数据的最简单的方法就是使用一个键为其赋值,就像hashtable或dictionary对象一样:

    cache["key"] = "value";

    这种做法将在缓存中存储项,同时不带任何依赖项,因此它不会到期,除非缓存引擎为了给其他缓存数据提供空间而将其删除。要包括特定的缓存依赖项,可使用add()或insert()方法。其中每个方法都有几个重载。add()和insert()之间的唯一区别是,add()返回对已缓存对象的引用,而insert()没有返回值(在c#中为空,在vb中为sub)。

    示例

    cache.insert("key", myxmlfiledata, new

    system.web.caching.cachedependency(server.mappath("users.xml")));

    该示例可将文件中的xml数据插入缓存,无需在以后请求时从文件读取。cachedependency的作用是确保缓存在文件更改后立即到期,以便可以从文件中提取最新数据,重新进行缓存。如果缓存的数据来自若干个文件,还可以指定一个文件名的数组。

    cache.insert("dependentkey", mydependentdata, new

    system.web.caching.cachedependency(new string[] {}, new string[]

    {"key"}));

    该示例可插入键值为“key”的第二个数据块(取决于是否存在第一个数据块)。如果缓存中不存在名为“key”的键,或者如果与该键相关联的对象已到期或被更新,则“dependentkey”的缓存条目将到期。

    cache.insert("key", mytimesensitivedata, null,

    datetime.now.addminutes(1), timespan.zero);

    绝对到期:此示例将对受时间影响的数据缓存一分钟,一分钟过后,缓存将到期。注意,绝对到期和滚动到期(见下文)不能一起使用。

    cache.insert("key", myfrequentlyaccesseddata, null,

    system.web.caching.cache.noabsoluteexpiration,

    timespan.fromminutes(1));

    动态滚动到期:此示例将缓存一些频繁使用的数据。数据将在缓存中一直保留下去,除非数据未被引用的时间达到了一分钟。注意,动态滚动到期和绝对到期不能一起使用。

sanmao 2012-10-25 14:41 发表评论
]]>
css 中写js 事件http://www.blogjava.net/wangdetian168/archive/2012/09/21/388287.htmlsanmaosanmaofri, 21 sep 2012 09:46:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/09/21/388287.htmlhttp://www.blogjava.net/wangdetian168/comments/388287.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/09/21/388287.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/388287.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/388287.html.date
        {
            event:expression(
                    onfocus = function()
                    {
                    wdatepicker();
                    }
                    )

         }



sanmao 2012-09-21 17:46 发表评论
]]>
columnschema 属性介绍http://www.blogjava.net/wangdetian168/archive/2012/09/21/388266.htmlsanmaosanmaofri, 21 sep 2012 08:11:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/09/21/388266.htmlhttp://www.blogjava.net/wangdetian168/comments/388266.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/09/21/388266.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/388266.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/388266.html

属性property

描述description

allowdbnull

是否允许空值null

database

通过databaseschema对象得到当前列所属的数据库

datatype

此数据对象的数据类型

description

当前对象的描述

extendedproperties

用来存储schemaobject的其他附加信息

isforeignkeymember

当前列是否为外键

isprimarykeymember

当前列是否为主键

isunique

当前列是否唯一

name

列的名称

nativetype

列定义的数据类型

precision

数据对象的精度

scale

数据对象的范围(个人理解为需要保留小数的范围)

size

数据对象的大小(例如:字符串长度为10)

systemtype

数据对象的系统类型

table

当前列所属的数据表



sanmao 2012-09-21 16:11 发表评论
]]>
codesmith----schemaexplorer databaseschema|tableschema|commandschema类结构详细介绍 http://www.blogjava.net/wangdetian168/archive/2012/09/21/388264.htmlsanmaosanmaofri, 21 sep 2012 08:02:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/09/21/388264.htmlhttp://www.blogjava.net/wangdetian168/comments/388264.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/09/21/388264.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/388264.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/388264.html codesmith与数据库的联系,在codesmith中自带一个程序集schemaexplorer.dll,这个程序集中的类主要用于获取数据库中各种对象的结构。

<%@ property name="sourcetable" type="schemaexplorer.tableschema"
default="" optional="false" category="context" description="源表名" %>


<%@ property name="sourcedb" type="schemaexplorer.databaseschema"
default="" optional="false" category="context" description="" onchanged=""
editor="" editorbase="" serializer="" %>


<%@ assembly name="schemaexplorer" %>


<%@ import namespace="schemaexplorer" %>



schemaexplorer中主要类的结构和功能:


databaseschema


属性:


connectionstring:一般填写类似于ado.net的连接字符串


name:数据库名称


provider:驱动程序提供者,一般实例化一个sqlschemaprovider对象


集合:


commands:所有存储过程集合


tables:所有表的集合


views:所有视图的集合



tableschema


属性:


name:表名


database:所在数据库


datacreated:创建日期


fullname:全名


hasprimarykey:是否有主键


owner:所有者


primarykey:主键信息



方法:gettabledata:获取表中所有数据,结果为datatable



集合:


columns:所有列集合


foreignkeycolumns:所有外键列的集合


foreignkeys:外键信息的集合


indexes:所有索引的信合


keys:所有主键和外键的列的集合


nonkeycolumns:所有非主键外键列的集合


nonforeignkeycolumns:所有非外键列的集合


nonprimarykeycolumns:所有非主键列的集合


primarykeys:主键信息的集合



commandschema存储过程结构


属性:


name:存储过程名


fullname:全名


database:所在数据库


datacreated:创建日期


owner:所有者


returnvalueparameter:返回值参数,sqlserver中似乎取不到


commandtext:存储过程的内容源代码



集合:


allinputparameters:所有的输入参数集合,有可能包括即是输入又是输出的参数


alloutputparameters:所有输出参数的集合,有可能包括即是输入又是输出的参数


commandresults:存储过程的查询结果集合


inputoutputparameters:输入输出参数的集合


inputparameters:所有输入参数的集合


outputparameters:所有输出参数的集合


parameters:所有参数的集合


nonreturnvalueparameters:除了返回值之外的参数的集合



viewschema视图结构


属性:


name:视图名


fullname:视图全名


database:所在数据库


datacreated:创建日期


owner:所有者


viewtext:视图源代码



方法:getviewdata:得到视图中的数据,返回类型为datatable



集合:columns:视图中所有列的集合



columnschema列结构


属性:


name:列的名称


nondbnull:是否允许为空


database:所在数据库


datatype:内部表示的数据类型


isforeignkeymember:是否为外键


isprimarykeymember:是否为主键,通用


isunique:是否唯一


nativetype:数据库中的数据类型


precision:精度


scale:小数位数


size:列的长度


systemtype:当前列在所用语言中的类型


table:所在的表



parameterschema参数结构


属性:


name:参数名称


nondbnull:是否为空


command:所在存储过程名


database:所在数据库


direction:参数的类型:输入,输出,输入输出,返回值


nativetype:数据库中的数据类型


size:长度


precision:精度


scale:小数位数


systemtype:当前列在所用语言中的类型



viewcolumnschema视图列的结构


属性:


name:视图的名称


nondbnull:是否为空


view:所在的视图


database:所在的数据库


nativetype:sqlserver中的类型


size:长度


precision:精度


scale:小数位数


systemtype:当前列在所用语言中的类型



tablekeyschema表中键结构


属性:


name:表的键的名称,即约束名称


database:所在数据库


foreignkeytable:有外键的表,即子表


primarykeytable:主键表,即主表


primarykey:主表的主键信息



集合:


primarykeymembercolumns:当前键信息中主键的成员列集合,即主表中的主键的列的集合


foreignkeymembercolumns:当前键信息中外键的成员列集合,即子表中某个外键的列集合



indexschema索引的结构


属性:


name:索引名称


table:所在表


database:所在数据库


is:是否聚集索引


isprimarykey:是否为主键索引


isunique:是否为唯一索引



集合:membercolumns:索引的列集合



extendedproperty扩展信息


table:


cs_isidentity:是否为标识符,不支持access


cs_iscomputed:是否为计算列


cs_isdeterministic:是否确定...


cs_identityseed::标识列种子数


cs_identityincrement:标识列递增量


cs_default:列的默认值 


cs_isrowguidcol



view:


cs_iscomputed:是否为计算列


cs_isdeterministic:



command:


cs_default:存储过程的默认参数



本文来自csdn博客,转载请标明出处:http://blog.csdn.net/zhaili1978/archive/2008/10/28/3167532.aspx



sanmao 2012-09-21 16:02 发表评论
]]>
jquery 实现文本闪烁功能 http://www.blogjava.net/wangdetian168/archive/2012/09/14/387741.htmlsanmaosanmaofri, 14 sep 2012 09:11:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/09/14/387741.htmlhttp://www.blogjava.net/wangdetian168/comments/387741.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/09/14/387741.html#feedback2http://www.blogjava.net/wangdetian168/comments/commentrss/387741.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/387741.html1













sanmao 2012-09-14 17:11 发表评论
]]>
juery 选中 treeview 所有子节点 和父节点http://www.blogjava.net/wangdetian168/archive/2012/09/11/387485.htmlsanmaosanmaotue, 11 sep 2012 09:06:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/09/11/387485.htmlhttp://www.blogjava.net/wangdetian168/comments/387485.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/09/11/387485.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/387485.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/387485.html function ontreenodechecked() {
            var ele = event.srcelement;
            if (ele.type == 'checkbox') {
                var divid = ele.id.replace('checkbox', 'nodes');
                $("#" divid).find("input[type=checkbox]").attr("checked", ele.checked);
                ontreenodechildchecked(ele);

            }
        }

        function ontreenodechildchecked(ele) {
            //自动处理上级
            try {
                var parentdiv = $(ele).parent().parent().parent().parent().parent();
                //  ele.parentelement.parentelement.parentelement.parentelement.parentelement;
                if (typeof (parentdiv.attr('id')) == 'undefined')
                    return;
                var parentchkbox = document.getelementbyid(parentdiv.attr('id').replace('nodes', 'checkbox'));
                if (parentchkbox != null) {
                    var childschkall = true;
//                    var boxs = parentdiv.getelementsbytagname('input');
//                    for (var i = 0; i < boxs.length; i ) {
//                        if (boxs[i].type == 'checkbox' && boxs[i].checked == false) {
//                            childschkall = false;
//                        }
//                    }
                    parentchkbox.checked = childschkall;
                    ontreenodechildchecked(parentchkbox);
                }
            }
            catch (e) {
                alert(e.message);
            }
        }



sanmao 2012-09-11 17:06 发表评论
]]>
win7扩展c盘空间|扩展分区空间大小http://www.blogjava.net/wangdetian168/archive/2012/09/01/386739.htmlsanmaosanmaosat, 01 sep 2012 01:42:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/09/01/386739.htmlhttp://www.blogjava.net/wangdetian168/comments/386739.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/09/01/386739.html#feedback1http://www.blogjava.net/wangdetian168/comments/commentrss/386739.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/386739.html1.推荐给大家一个工具 分区助手 大家可以到网上去下 我说下如何扩展就可以了
这个工具只可以扩展临近分居的空间  比如c盘 只能扩展 d盘的空间  同样 d盘能扩展e盘的空间
我先那c盘扩展为例子吧
有的时候不想把整d磁盘空间都扩展过来  我们可以先把d盘分区整分区

2.这一步就可以选择想扩展的分区
点击右键 选择 “合并分区” 如下图

选择下刚才调整出来的大小
选择确定就可以了
电脑会重启下 系统会自己调整下 我的电脑自己重启两次就可以了
希望能帮助你


sanmao 2012-09-01 09:42 发表评论
]]>
秀才 状元 进士 介绍http://www.blogjava.net/wangdetian168/archive/2012/08/28/386465.htmlsanmaosanmaotue, 28 aug 2012 14:26:00 gmthttp://www.blogjava.net/wangdetian168/archive/2012/08/28/386465.htmlhttp://www.blogjava.net/wangdetian168/comments/386465.htmlhttp://www.blogjava.net/wangdetian168/archive/2012/08/28/386465.html#feedback0http://www.blogjava.net/wangdetian168/comments/commentrss/386465.htmlhttp://www.blogjava.net/wangdetian168/services/trackbacks/386465.html阅读全文

sanmao 2012-08-28 22:26 发表评论
]]>
网站地图