分类: 编程技术预览模式: 普通 | 列表

常用的数据库统计SQL语句(2)

1.解决被零除(零做除数时)

--来自百度问吧

在统计系统中,需要求百分数,
如(sum(baseprice)-sum(quote))/sum(baseprice)*100)中,
如果sum(baseprice)为0,系统会报错,不能运行

把sum(baseprice) 改为
nullif(sum(isnull(baseprice,0)),0)
就可以了,除于0会出错,除于null就不会出错了

查看更多...

Tags: 数据库统计SQL语句

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7220

Oracle学习:Oracle常用函数集

虽然网上多得是,但是还是自己整理一下,加深印象。

提供给大家 Excel版,方便打印.

点击下载此文件

数值函数    
函数 说明 备注
ABS(n) 返回n的绝对值  
ACOS(n) ASIN(A) ATAN(n) 返回n的反余弦 反正弦值 反正切值  
COS(n) SIN(n) TAN(n) 返回n的余弦值 正弦值 正切值  
FLOOR(n) 返回小于或等于n的最大整数  
MOD(m,n) 返回m除以n之后的余数,若n为0,则返回m  
CEIL(n) 返回大于等于n的最小整数  
ROUND(n,m) 执行四舍五入运算  若省略m,则四舍五入到整数位;若m是负数,则到小数点前m位;若m为正数,则到小数点后m位
EXP(n) LN(n) LOG(n) 返回e的n次幂 以E为底的对数 对数  
SQRT(n) 返回n的平方根,n必须大于0  
SIGN(n) 检测n的正负. 若n小于0,则返回-1;若n等于0,
则返回0.若n大于0,则返回1                                  
聚集函数    
COUNT(n) 返回某字段的记录总数  
AVG(col_name) 返回某一列的平均值  
MAX(exp) MIN(exp) 返回exp参数的最大值 最小值  
MEDIAN(exp) 返回exp参数的中间数  
SUM(exp) 返回exp参数的总和  
Group-ID 判别由Group By说明产生的重复组  
Rank(value) 计算在一组值中某值的排列  
Greatest(c1,c2) 返回参数列表中的最大值  
Least(c1,c2) 返回参数列表中的最小值                                                
COALESCE(c1,c2) 返回该表达式列表中的第一个非空值  
VAR-POP(value) 总体方差  
字符函数    
ASCII(n) 返回n的首字符在ASCII码中对应的十进制数  
CHR(n) 返回十进制ASCII码n对应的字符  
CONCAT(C1,C2) 将C1连接在C2的后面  
LENGTH(C1) 返回字符串C1的长度  
LOWER(C1) UPPER(C1) 返回C1的小写 大写  
LTRIM(C1) RTRIM(C1) 去掉C1左边的空格 去掉C1右边的空格  
INITCAP(c1) 将C1的首字符大写,其它小写  
REPLACE(C1,C2,C3) 将C1中出现的C2替换成C3 若C3为空,则将C2删除  
SUBSTR(c,m,n) 返回c中以第m位开始算起长度为n的字符串.若m为负数,则从尾数开数  
TRANSLATE(C1,C2,C3) 将C1中出现的C2替换成C3 然后返回修改后的C1  
RPAD(C1,LENGTH,C2)
 LPAD(C1,LENGTH,C2)
RPAD 允许在列的右边填充一组字符 LPAD 允许在
列的左边填充一组字符
添加的字符可以为句号,逗号,感叹号,
字母,数之际
|| 连接符 用于将两个字符串结合在一起  
日期及时间函数    
sysdate 返回当前数据库的日期时间  
current_date 返回现在的最新日期  
DBtimezone 返回数据库所在的时区  
Add_months(d,n) 返回时间d加了n月后的新时间  
Next_day(d,c) 返回日期d后的下一个c  
Last_day(d) 返回该日期d所在月份的最后一天  
MONTHS_Between(d1,d2) 返回日期d1与d2的相差月数  
Extract(c,from d) 返回日期时间d中指定的C部分 C的取值为year,month,day,min,
second,timezone等
localtimestamp(d) 返回一个时间戳  
Round(d,format) 将d转换成以format字符串格式指定的格式 format是指oracle的日期格式
转换函数    
ASCIISTR(string) 接受一个字符串参数,返回ASCII码  
BIN_TO_NUM(n1,n2,n3) 将每位由n1,n2,n3等组成的二进制转变成十进制  
Cast(c as t) 将表大字式以转换成数据类型t t为数据类型 t可以为自定义的数据类型
CHARTOROWID(string) 将某个rowID的字符串转换为rowID值  
TO_CHAR(X,format) 返回x按format格式转换后的字符串  
TO_DATE(X,format) 返回x按format格式转换后的时间类型的数据  
TO_Number(X,format) 返回x按format格式转换后的数字类型的数据  
TO_Nchar(string,format,params)    
Translate(strng,if,then) 在字符串中进行逐字符的替换  
DeCODE(value,if,then) 在字符串中进行逐值的替换  
CARDINALITY(table_name) 返回嵌套表中的记录数,返回整型  
COLLECT(column_name) 用于与cast函数共同创建拥有特定列表的嵌套表,
并将该列强制转换成cast函数中所指定的类型
 
HEXTORAW 十六进制转换为二进制  
RAWTOHEX 二进制转十六进制  
     
     
其它函数    
NVL(exp1,exp2) 如果exp1的值为null,返回exp2;否则返回exp1  
NVL2(exp1,exp2,exp3) 同NVL一样运用  
UID 返回登录当前会话的用户UID  
USER 返回当前登录会话的用户名  

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6476

EMS企业网站管理系统 Beta2009.0.02 版

EMS--EnterPrise Site Manage Suite 企业网站管理系统

第二次测试版本的一再推迟,除了自身工作原因之外,我们也在不断地寻找自己将来要走的特色路子。

我们对比了很多同类的系统,发现我们还远远落后于别人。我们还需要加倍的努力,集众家之所长,显自身之特色.我们先前的路,是先学习别人的路。




EMS Beta2009.0.0.2 测试版 有了以下改进:

1.所有参数传递采用加密形式
2. 前台工作列表页面美化

查看更多...

Tags: EMS企业网站管理系统

分类:编程技术 | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 5313

常用的一些数据统计SQL语句

只有在作统计分析的时候,你才能感觉到数据库的强大,才能感觉到数字游戏的趣味性所在。当然,对于企业而言,则是用于进行决策分析的最好支持之一. 最近刚完工的一个项目中对SQL的运用,让我又对SQL的理解与使用加深了一层。很高兴与大家分享其中的乐趣.
废话少说,我们先建一个原始表吧。


新建表:


Create TABLE [dbo].[DezaiCn_Sale] (
  [ID] int IDENTITY(1, 1) NOT NULL,
  [日期] datetime NOT NULL,
  [销售量] int NOT NULL,
  [店铺名] char(10) COLLATE Chinese_PRC_CI_AS NOT NULL,
  CONSTRAINT [PK_Test_Sale] PRIMARY KEY CLUSTERED ([ID])

查看更多...

Tags: 数据统计SQL语句

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 13438

Web开发电子期刊2009年第3期(总第31期)

欢迎下载我们的Web开发技术期刊

本期共摘选文章61篇,感谢所有原创文章的作者.同时感谢所有支持本刊发展的朋友们。





下载第31期web开发技术期刊

下载文件 点击下载此文件

查看更多...

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5019

利用zedGraph实现不定曲线数曲线的生成

呵呵,终于整出来了

我的需求是这样的:

有一大堆的供应商的库存数据要按产品按供应商按时间段进行数据比较,同时产生图表,就是
利用zedGraph实现不定曲线数曲线的生成

还是贴张图来说一下吧。




查看更多...

Tags: zedGraph实现不定曲线数曲线的生成

分类:编程技术 | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 11508

这期的教程量比以前多了一倍多,希望能给大家带来帮助。请多多支持我们的期刊,谢谢。同时感谢所有教程的原著作者及出处。

点击下载此文件

期刊目录:

Net
ASP.NET 中缓存应用
ASP.NET中验证页开发技巧
ASP.NET 2.0个性化配置
GRIDVIEW中实现上移下移
ASP.NET缓存策略经验谈
System.Data.DataTable计算功能详解
NET序列化与反序列化操作
遍历指定文件夹下所有的xml文件并动态生成HTML页面
结构体构造函数的应用
NHibernate入门级示例(增 删 改)
提高C#编程水平的50个要点
C# 编程中的内存管理
Java
Java远程通讯可选技术及原理
按指定的编码读取文本文件内容
Java开发中如何应用线程
2009年10个Java技术解决方案
提高WebSphere Portal性能的捷径
J2EE乱码问题解决方案汇总
J2EE项目代码编写规范
Java编程基础中模式和框架的区别
JAVA实现屏幕抓图和远程桌面控制的方法
Java应用过程中获取系统属性
Java应用从集中式步入分布式
Hibernate 参数设置一览表
MS SQL
SQL Server Analysis Service中Cube的结构
SQL Server 2005 BI数据挖掘案例(库存预测)
精妙SQL速查手册
SQL日期格式化应用大全
数据挖掘的理论基础
SQL语句对表中父子节点正向和反向取所有节点
SQL统计语句收集
sql中分隔字串-->查询-->组合字串
SQL 計算一個字符串在另一個字符串中出現的次數
SQL 中的统计应用
调试SQL Server的存储过程及用户定义函数
可按任意字段排序的分页存储过程
Oracle
 Oracle新手最常碰到的6个错误及解决方案
 PL/SQL初学者必读:几十个实用的PL/SQL
 用SQL语句实现进制间互相转换
 Oracle客户端如何连接到数据库
 Oracle数据库后台进程的具体功能
 Oracle面试过程中常见的二十个问题
 Oracle中SQLPLUS的常用指令收集与技巧
 轻松解决Oracle数据库的服务启动问题 
 如何收集Oracle进程中SQL跟踪信息
 Oracle新手最常碰到的6个错误及解决方案
 Oracle Developer 2000中的一些实用语句
 学习oracle sql loader 的使用
软件架构与设计
软件架构知识体系
Web应用开发方法研究
几种计算机软件应用体系结构模型…
大型网站架构演变和知识体系
怎样成为优秀的软件模型设计者
项目需求稳定性与开发模型选择
软件项目管理原则
Agile 敏捷建模思想
IT生活
社交生活的技巧
如何正确地向他人道歉
应该每日思考的5个有力理由及养成方法
立即行动的七个方法
怎样规划生活
你的行为合理吗
世界顶级精英们的人生哲学
构建人生的复原力
失败15种性格
作个真正的男人
每天问自己十个问题
成大事的九种手段
51招提升你的自信
困惑人生的62个问题以及答案

查看更多...

Tags: Web开发电子期刊 Web开发期刊

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4935

Web技术电子期刊2009年第1期(总第29期)

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5099

EMS企业网站管理系统

万事开头难,新的一年,我们必须推出新的东西才能让我们保持不断前进的动力。




EMS--EnterPrise Site Manage Suite 企业网站管理系统


为什么选择EMS?


我们开发,我们设计,我们利用Web标准,考虑用户操作的方便性,并基于现有最先进的开发技术,为的是为广大的企业拥有一个很好管理,很简单的一个网站管理系统,为的是这个系统能促进你企业的信息化速度加快,尽早踏上互联网电子商务之路。通过我们彼此之间的沟通与交流,让我们成为朋友,让你的企业网站能给你带来真正的效益



EMS有什么特点?


EMS企业网站管理系统基于Microsoft ASP.NET和C#语言开发.后台管理使用方便简单,前台可以自由设制。网站风格可以自己定制,同时开放所有源代码,为企业进行二次开发提供了基础。同时我们与使用者进行互动,欢迎大家发现问题并一起解决问题。




EMS有什么特点?


EMS企业网站管理系统刚刚开始发布,可能有很多地方不尽如人意或不太完善,会对你的使用造成一定的影响,对此我们深表歉意。我们会不断根据大家反馈的要求,及时、迅速的提供解决方案,尽最大的力量与你一道去解决问题,不断提高系统的安全性,优质性能,用户体验良好反馈。这一切,都需要你我的努力!


相关站点正在设计中,敬请等待.


解决方案下载(Src 源代码): 版本:Ver1.0 文件格式:rar文件

http://EMS.dezai.cn/SRC/DezaiStudio_EMS_Source.rar


开发手册下载(HandBook): 文件格式:chm文件

http://EMS.dezai.cn/HandBook/DezaiStudio_EMS_HandBookVer1.0.rar

编译版本下载(Release):
http://EMS.dezai.cn/Publish/DezaiStudio_EMS_ReleaseVer1.0.rar


在线演示站点地址:

http://EMS.dezai.cn/

后台管理地址演示:

http://EMS.dezai.cn/Manage/

用户名:dezai 密码:dezai



我们下次改版会计会有些什么改动?

1.系统的安全性能不是很强,我们会对系统的安全方面进行加强。

2.系统的整体风格仍然不统一,我们会对局部设计进行调整。

3.优化及整理相关代码及注释,方便代码阅读。

4.相关文件夹及控件的位置调整

5.漏洞及Bug的修补



万事开头难,刚刚出炉的东西总是很稚嫩的,请大家见谅.欢迎大家提出自己的建议,发现其中的Bug,并告诉我们。让我们一起做得更好!

Tags: EMS企业网站管理系统 EMS 企业网站管理系统

分类:编程技术 | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 5819

用户权限管理设计(2)

上篇讲完了数据库的设计,这次我们讲讲在Net中的实现


UI的实现,主要是方便用户操作,考虑用户体验,这个没有什么好说的

后台管理菜单



角色管理列表



新增用户



权限分配





现在,我们根据数据库生成实体类。实体类的设计一般跟数据库的字段相差不大,可以用相关的ORM帮你生成




我们再看看BLL层




我这里是用户-角色的代码,其它的只要根据数据库存储过程就可以看出对应的方法是什么的

/// <summary>
    /// UserRole业务逻辑层
    /// </summary>
    public class MemberRole:ABC.IDAL.Sys.IMemberRole
    {

        private static readonly ABC.IDAL.Sys.IMemberRole dal = ABC.DALFactory.DataAccess.CreateMemberRole();


        /// <summary>
        /// 增加
        /// </summary>
        /// <param name="Model">Model</param>
        /// <returns>bool</returns>
        public bool Insert(ABC.Entity.Sys.MemberRoleInfo Model)
        {
            return dal.Insert(Model);
        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="Model">Model</param>
        /// <returns>bool</returns>
        public bool Update(ABC.Entity.Sys.MemberRoleInfo Model)
        {

            return dal.Update(Model);
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="memberRoleID"></param>
        /// <returns>bool</return...

查看更多...

Tags: 用户权限管理设计

分类:编程技术 | 固定链接 | 评论: 7 | 引用: 0 | 查看次数: 13878

用户权限管理设计(1)

用户管理权限设计一直是大家讨论的热点,因为几乎涉及到每一个开发的业务系统。我找了很多很多的资料,大家的核心基本上都是一样的:基于角色管理. 用户,角色,模块,权限的相互组合,就可以形成一个强大的权限管理系统。

最近在一个项目中设计的一个用户权限的设计,很乐意与大家一起讨论及分享.

设计思路



我的设计思路或者说是我想要实现的功能

1.用户的权限通过角色来控制,一个用户可以拥有多个角色.

2.用户拥有不同角色时,其权限应该是多个角色相互的补集.

3.一个角色拥有多个模块

4.用户的前台菜单显示根据角色所拥有的模块所决定,不同的用户在前端显示的操作菜单是不一样的。

5.页面中的功能按钮根据模块中所包含的功能所定义,通过模块及角色所拥有的权限进行控制

6.可看某个模块有哪些用户,哪些对应角色,并对其进行特殊权限设置.

7.可以针对单个用户进行特殊设置


我在我的Project中,基本上达到了以上的效果及功能,但在实际过程中发现有些不足之处。因为整个权限设计是基于数据库来设计中,所以数据的读取当数据量大时(我所说的数据量是以万以上来计)可能对性能有一定的影响。但对于一般来说,几千用户之类的我想还是可以承受的。我会在后面说明不足之处。


数据库设计


基本设计:

1.首先,设计数据库.

数据库的设计其实我估计大家都很熟悉了

基本表:用户表,角色表,模块表,功能表,管理员表.如果涉及到企业性质的,可能会根据需要加上组织结构表,群组表等其它辅助表



用户




管理员




角色




模块
(我的模块表考虑了子模块的因素,所以会有深度,父模块ID这两个字段,在后来开发过中,由于思路的转变,IsRootModule,FunctionCode我都没有用到,为了让整个权限系统通变得更通用,我都将其单独设计成了另一个表)





功能表(功能表就是模块对应的功能:增加,删除,修改,详细,列表,浏览,导出,导入之类的)




业务表:用户-角色表 模块-功能表 角色-模块表

要实现一个用户多个角色(1 to n),一个角色多个模块(1 to n),一个模块多个功能(1 to n),那就得加上几个相关的业务表,之前考虑用视图去实现,我个人之见,视图最好只用来读取数据,不要用来进行数据操作.后来证明是不可取的,这里要注意的就是在实际的业务操作中,应该尽量避免重复的数据录入. 这些表都很简单,但却很关键


用户-角色:




角色-模块:




模块-功能:




大家可以看到,表结构很简单,字段也很少,设计也差不多。都是将相关联的字段ID取出来做数据存取。



视图:用户-角色-模块-功能视图



可能大家会觉得很奇怪,为什么这里出现member_role呢。因为我们在数据表中只存取了ID值,而对应的RoleName字段并没有包含其中,这里的视图就是获取关联表中其他所需要的字段数据了。另外两个视图大家看名字应该就知道他的用处了。




存储过程:各自表的增加,删除,修改,及列表数据. 判断是否存在相同的数据
(CUDLIS-Create, Update,Delete,IfExist,Show,List)

存储过程我就不一一列出了,很简单的,你只要写出下面这些基本上你在开发过程就不会有太多问题了. 注意的是:在相互关联的业务表中,最好能对数据插入进行重复数据判断(用户角色表,模块功能表,角色模块表,尽量避免重复的数据插入)我把大致需要实现的业务列个表给大家参考:


用户表:(Insert ,Update ,IfExist ,Show, Delete)

用户角色表:(Insert ,Update,IfExist,Delete,RoleListByUserID,UserListByRoleID)

角色表:(Insert,Update,IfExist,Show,Delete)

角色模块表:(Insert,IfExist,Delete,Show,RoleListByModuleID,ModulistByRoleID)

模块表:(Insert,Update,IfExist,Show,Dlete,ListByRootModuleID,ListByModuleLevel)

模块功能表:(Insert,Update,Delete,FunctionListByModuleID)

针对用户直接获取其所有的权限时,应该有个单独的Procedure从视图中Member_Role_Module_Function中获取其对应的数据,这样就可以得到想要的东西了。


数据库设计部分应该就这样差不多了。我想这应该是通用的。在实际运用过程中,我个人认为应该有一些改进点:

1.模块与功能部分,可以用字符串的形式将模块对应的功能存在一个数据字段中,这样可能在你的代码编写中可以省下较多的时间并带来更多的便利(主要是可以用split()来代替频繁的数据获取业务)这个我在最初设计中没有想到这点,有点失策.

2.针对N级模块的权限展现问题,如何让父模块继承子模块的权限这个是我没有考虑到的,不过我想应该可以用IsRootModule这个字段来作文章,可惜我还没想到如何去整这个字段。当子模块很多时,在前端UI展示的时候是否会出现很慢的情况?这个我没有去做测试。带有一定的风险
但在前端UI展示我还没想到或实现好的办法,我能想到的应该是像GridViewTree那种不错。

这个权限设计已经在我的Project中运用,暂时没有发现什么问题,而且为我以后对其它系统集成也很有帮助。至于如何在C#中实现业务,个人认为只要知道数据库如何整的,那C#中的业务实现只是一个取数操作过程。下篇与大家再共同分享讨论.

Tags: 用户权限管理设计

分类:编程技术 | 固定链接 | 评论: 3 | 引用: 0 | 查看次数: 12764

ListBox与数据库的绑定操作

ListBox,DropDownList,checkBox这几个控件的属性跟使用方法几乎一样,在做系统的进修使用的频率也多。我这里主要与大家分享一下如何用listbox绑定数据据,及增加数据库,从列表中移除选择项的几个操作方法。其实用javascript也完全可以实现。我这里是用服务器端控件与数据库绑定操作来实现的。各有各的的优缺点。






由上图可知:左边的ListBox我是通过DropDownList的选择来进行绑定数据的。所以ListBox是跟上面的部门DropDownList绑定的,所以我应该在DropdownList的selectedx_changed事件中写绑定ListBox的代码





int departmentID = Convert.ToInt32(ddlDepartment.SelectedValue); //获取Dropdownlist中的选择项的值并转成整型

            BLL.Sys.Member bllMember = new ABC.BLL.Sys.Member();  //初始化一个BLL业务操作层的对象

            if (bllMember.CountByDepartment(departmentID) != 0) //如果绑定的数据总数不为0的情况下
            {

                lstDeptMember.DataSource = bllMember.ListByDepartment(departmentID, 1, bllMember.CountByDepartment(departmentID));  //业务层绑定方法,也就是listBox的数据来源

                lstDeptMember.DataValueField = "MemberID"; //绑定ListBox单项的选择值

                lstDeptMember.DataTextField = "TrueName";//绑定ListBox单项的文字值


                lstDeptMember.DataBind();

            }
            else
            {
                lstDeptMember.Items.Clear(); //清除ListBox的所有项目

                ListItem item = new ListItem();
                item.Text = "暂时无用户";
                item.Value = string.Empty;

                lstDeptMember.Items.Add(item);
            }





加入所选用户

加入所选用户的Button是对右边所选择的值进行一个简单的for循环检测,选中的加到右边的ListBox中



   if (lstDeptMember.SelectedIndex != -1) //lstDeptMember.SelectedIndex!=-1判定是否未选择
            ...

查看更多...

Tags: ListBox 数据库 ListBox绑定

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7235

Web技术电子期刊2008年第12期(总第28期)

2008年就快走到末节了,我们的期刊也发行到了28期! 越来越多的朋友通过期刊加入到我们的大家庭中。

提前祝大家新年快乐!如果你是奔三族,那么请你与我们一起努力,一起奋进!

我们一直在坚持!只要有一个人看,我们就继续办下去!感谢大家一直以来对我们期刊及网站的支持!











支持IE7以上的浏览器

下载文件 点击下载此文件


分享知识,分享快乐!
分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5476

[译]连接池和 "Timeout expired"异常

原文标题:Connection Pooling and the "Timeout expired" exception FAQ

来源:http://blogs.msdn.com/angelsb/archive/2004/08/25/220333.aspx

作者:angelsb


System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.   This may have occurred because all pooled connections were in use and max pool size was reached.

Timeout expired 异常是个很棘手的异常,想必几乎每个人都碰到过。有时可真是对它咬牙切齿,拿它没办法。 angelsb这篇文章很好,希望对大家有用。我也是看到他讲得很好,才翻译过来的,水平有限,请多多指教.


System.InvalidOperationException: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.   This may have occurred because all pooled connections were in use and max pool size was reached.

哎!在另一个进程中,又出现了连接池已满的问题,这是个最让人头痛却又是最常出现的连接池问题之一.原因是在开发过程中很少碰到这个头痛的问题,但在部署APP到客户端时,却总是不经意地跑出来了.我想,我应该花些许时间对这个问题进行一次完整的总结吧.

发生的本质是什么?

我们来认真看一下可能会发生这种异常的两种情况

1) 你使用了超过最大的连接池连接数(默认的最大连接数是100)

在大部分应用程序中,这种情况是很少出现的. 毕竟当你使用连接池时,100个并行连接是一个非常大的数字.根据我的经验,会造成这种异常的原因的最大可能,应该是在一个纯种下打开了100个连接.



SqlConnection[] connectionArray = new SqlConnection[101];
    for (int i = 0; i <= 100; i++)
    {
        connectionArray = new SqlConnection("Server=.\\SQLEXPRESS ;Integrated security=sspi;connection timeout=5");
        connectionArray[i].Open();
    }




解决方案:如果你确定你将会使用超过100个并行连接(在同一连接字符串上),你可以增加最大连接数.

2) 连接泄漏

我个人认为的连接泄漏定义是你打开了一个连接但你没有在你的代码中执行close()或dispose().这范围不仅仅是你忘记了在connection后连接后使用dispose()或close()对期进行关闭,还包括一些你已经在相关connection后写好了close()却根本没有起作用的情況.我们来看看下面的代码:



using System;
using System.Data;
using System.Data.SqlClient;

public class Repro
{
    public static int Main(string[] args)
    {
        Repro repro = new Repro();
        for (int i = 0; i <= 5000; i++)
        {
            try{ Console.Write(i+" ");    repro.LeakConnections(); }
            catch (SqlException){}
        }

        return 1;
    }
    public void LeakConnections()
    {    
        SqlConnection sqlconnection1 = new SqlConnection("Server=.\\SQLEXPRESS ;Integrated security=sspi;connection timeout=5");
        sqlconnection1.Open();
        SqlCommand sqlcommand1 = sqlconnection1.CreateCommand();
        sql...
[/i]

查看更多...

Tags: Timeout expired|连接池|最大连接池

分类:编程技术 | 固定链接 | 评论: 3 | 引用: 0 | 查看次数: 16419

问题描述:

the page contains markup that is not valid when attached to a master page 当使用了样式跟皮肤的时候,打开.aspx页,就会出现这个东西了。不知是不是Bug




这是MSDN的反馈:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=314745

我的解决办法很奇怪:


打开Source视图:
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <uc1:Add ID="Add1" runat="server" />
</asp:Content>

在这里随便打一个回车再返回到view视图就可以了~~~


<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <uc1:Add ID="Add1" runat="server" />
    
    
</asp:Content>


//注意区别:我上面多了两个空行



我查了一下国外的资料,还有一种方法是:

将aspx或master里面的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

换成

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


这种方法没有试过,大家可以试一下。



小记一下。但愿能给您带来帮助.



查看更多...

Tags: The page contains markup that is not valid when attached to master page

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 9942
有梦想,就有未来。

我们的Web技术电子期刊第27期出来了!风吹雨打,跌跌撞撞,我们走到了第27期~~ 欢迎大家下载~~



本期内容目录:






第27期Web技术电子期刊下载(适用于IE7浏览器阅读)




下载文件 点击下载此文件



再次感谢关注本期刊发展的朋友,感谢关注www.dezai.cn的所有朋友

Tags: Web技术电子期刊 Web技术 电子期刊

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5324

[译]使用ASP.NET2.0生成Excel报表

文章来源:


http://www.beansoftware.com/asp.net-tutorials/generating-excel-reports.aspx

文章作者:Sushmita Kumari

这是一篇很老的文章了,很长时间没有翻译文章,拿来练一练. 同时把作者的VB版,改成了C#版


源文件:

下载文件 点击下载此文件



Excel几乎是所有公司都要用来分析数据的一个超级工具,然而十年后的互联网已不可日而语,几乎所有的呈现的数据都是动态生成的,也就是说通过一个数据库里的数据交互产生所要的数据结果.有时,我们可能需在一个Excel的文件中,通过使用Excel的某些特性让分析的数据更好的适应我们的需要并呈现出来.在这篇文章中,我们可以学习到如何与Excel文件中的数据进行包括读写的交互操作.

相关源文件下载:
下载文件 点击下载此文件

相关的文件:为了更好的演示本文章,我们先找到了一个一个包含学生分数数据的一个Excel文件.里面的数据都是随机的.

Excel - ASP.NET Scenarios


让我们新建一个接口从Excel文件中获取数据.如图






注意引入以下组件及命名空间:


Imports System.Data.OleDb
Imports System.Data



VB Code


Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Try
            Dim strExcelConn As String = System.Configuration.ConfigurationManager.ConnectionStrings.Item("ExcelConnection").ToString()
            Dim dbConn As New OleDbConnection(strExcelConn)
            Dim strSQL As String

            strSQL = "Select * FROM [" & cmbSheets.SelectedItem.ToString() & "$]"

            dbConn.Open()

            Dim cmd As New OleDbCommand(strSQL, dbConn)
            Dim dsExcel As New DataSet
            Dim daExcel As New OleDbDataAdapter(cmd)

            daExcel.Fill(dsExcel)

            dgResults.DataSource = dsExcel
            dgResults.DataBind()
        Catch ex As Exception
            Throw ex
        End Try
End Sub


C# Code



protected void btnSearch_Click(object sender, System.EventArgs e)
{
    try {
        string strExcelConn = System.Configuration.ConfigurationManager.ConnectionStrings.Item("ExcelConnection").ToString();
        OleDbConnection dbConn = new OleDbConnection(strExcelConn);
        string strSQL;

 ...

查看更多...

Tags: ASP.NET2.0生成Excel报表 Net.Excel报表

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7445

Web技术电子期刊2008年第9期(总第26期)

我们用心服务,与您共同进步。

第26期出来了!感谢大家一直对本刊的支持!

如果下了不看,请您不要下,谢谢。



本期目录:






本期期刊下载(支持IE7):


下载文件 点击下载此文件


Tags: Web技术电子期刊 电子期刊

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5073

Sandcastle生成项目文档手册

用过NDOC的对生成CHM的项目文档应该不会陌生,可惜那丫居然不再做下去了。还好,MS公司的Sandcastle顶上来了,当然,现在很多高手们也在不断地开发类似NDOC这样的文档生成工具。但用来用去,还是这个比较喜欢,可以自动把其它语言代码也同时生成(类似MSDN)一样。可是网上对这个东东都是一些介绍性的文档,没有说如何使用,这里就把我使用的过程供大家分享,一起学习.

当然,我所说的这工具,是在VS。NET开发环境实现,Java好像也有同样的生成工具的。







Sandcastle生成的输出结果具有以下特点:

类似于MSDN布局的界面。 
自动生成索引项、内容项目表、主题块和页面布局,提高一致性和熟悉程度。 
自动生成语法宣称部分。 
自动生成继承表。 
代码彩色化。 
提供多种风格和语言选择,终端用户可从中选择自己最喜欢的形式。 
输出结果以HTML和CSS形式显示,微软承诺将来提供更多选择。


看到这样好的东西,我估计你也想试一试吧。呵呵。


使用前提:

在你的Solution里面的每个项目里,都会有一个Bin文件夹,同时你必须要让你的项目能生成一个XML文件.(在属性里面设置xml document file),除此之外,在每个方法或函数里面都要写上对应的注释。

如图:

怎么让项目生成一个XML document  file





代码中对应的注释:在每个方法前加三个斜杠 /// 会自动出来






做好了以上这两个前提准备,你的Bin文件下就应该有Sandcastle的东东了。






[em11]


[下载]

废话少说,先去当一个Sandcastle再说


还好,MS免费提供了下载:
http://www.microsoft.com/downloads/details.aspx?FamilyId=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en





如果对这个玩艺儿有意思的话,可以去下载源码研究一下,开源嘛,不研究一下对不起脑子。


下载地址:

https://blogs.msdn.com/sandcastle/




[安装]

安装就不用我劳神吧,搞code不会装那实在是说不过去了吧,孩子。[em13]






安装好后记住安装位置






在安装位置中找到build_Sandcastle.bat这个批处理文件

Sandcastle\Examples\sandcastle\里面






这里提供一个xcopy.exe的系统文件,好像是用来COPY系统中的一些有用的文件的吧(放心,没毒)



下载文件 点击下载此文件


然后,把你的项目的XML,DLL文件与xcopy.exe  build_Sandcastle.bat 放在一起




[使用]



注:我这里采用的是命令行形式,如果要使用GUI方式生成,可以去下载一个

SandcastleGUI.exe (v1.47 - August 2008)
下载地址:http://www.inchl.nl/SandcastleGUI/


打开命令窗口,进入到你的文档所在的文件夹(就是把xml dll xcopy.exe build_Sandcastle.bat 装在一起的那个)







假设我要对IDAL.DLL这个生成文档,刚运行如下命令:

build_Sandcastle vs2005 abc.idal

你就可以在这个文件夹里看到一个CHM文件跟几个相关的文件夹了








如要你觉得上面的操作都比较麻烦,那你可以去下载一个 Sandcastle Help File Builder


你只要根据自己的项目去设定相关属性,同样可以生出chm鸡蛋来,更令人惊喜的是可以生出一个Net的网站!

操作界面跟NDOC类似







生成出来的类似MSDN的文档页面





除了上面这个插件外,Sandcastle 还可以通过 DocProject for Sandcastle  与 VS2005 VS2008集合在一起,以向导方式生出相关的文档来,具体的就不再述说了。大家可以看看下面这几个链接就知道了。

Sandcastle Help File Builder 
http://www.codeplex.com/SHFB

DocProject for Sandcastle 
http://www.codeplex.com/DocProject

AjaxDoc 
http://www.codeplex.com/ajaxdoc


一点小经验,与大家分享,多多支持。[em13]

查看更多...

Tags: Sandcastle Sandcastle教程

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8459

Cookies的基本操作

Cookies的概念就不用哆嗦了,大家都很常用。不过我好像很少用,呵呵。

1.创建Cookies





using System;
 
 
// Use this line when you want to save a cookie
Response.Cookies["MyCookieName"].Value = "MyCookieValue";
// How long will cookie exist on client hard disk
Response.Cookies["MyCookieName"].Expires = DateTime.Now.AddDays(1);
// To add multiple key/value pairs in single cookie
Response.Cookies["VisitorData"]["FirstName"] = "Richard";
Response.Cookies["VisitorData"]["LastVisit"] = DateTime.Now.ToString();







2.读取Cookies


string MyCookieValue;
// We need to perform this check first, to avoid null exception
// if cookie not exists
if(Request.Cookies["MyCookieName"] != null)
    MyCookieValue = Request.Cookies["MyCookieName"].Value;




3.删除Cookies



// First check if cookie exists
if (Request.Cookies["MyCookieName"] != null)
{
    // Set its expiration time somewhere in the past
    Response.Cookies["MyCookieName"].Expires = DateTime.Now.AddDays(-1);




4.使用HttpCookie class 这个类

参考MSDN:
http://msdn.microsoft.com/zh-tw/library/system.web.httpcookie(VS.80).aspx

几个常用属性:















属性的使用方法就跟其他类使用一样:



HttpCookie MyGreatCookie = new HttpCookie("MyCookieName");
MyGreatCookie.Value = "Some cookie value";
MyGreatCookie.Expires = DateTime.Now.AddDays(100);
Response.Cookies.Add(MyGreatCookie);






5.Cookies的一些限制

<1> Cookies的存储大小为4096 字节,一般只会用来存储一些数据量较小的信息

<2>每个Cookies的数量在一个网站上不能超过20个,当你超过20个时,老的会删除掉

<3>用户可以在浏览器中设置是否接受或启用Cookies,如果设置了否,Cookies就不能作为存储状态的工具,所以一般都会在使用Cookies之前检测一下浏览器是否启用了Cookies

6.如何确定是否使用了Cookies



End If
[ C# ]
if (Request.Browser.Cookies)
{
    // Cookies supported
}
else
{
    // Web browser not supports cookies
}




7.使用Cookies的场合

一般对用户比较敏感的数据都不建议使用Cookies来存储,它只是一些普通的文本,但是如果您想使用“记住我的状态”或“直接登录”这样的小功能来增加系统的操作简便性,这时Cookies就可以派上用场了.总的来说:用来保持用户在同一Website同一操作方式时是最好的使用方式








查看更多...

Tags: Cookies

分类:编程技术 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5382