# Tuesday, October 18, 2005

SqlServer的默认开放端口是1433,但是由于实际开发的需要端口被设置为非1433,一些开发人员不知如何写该类型的连接字符串了。
其实解决这个问题很简单的,只需在连接字符串的Data Source=myServer后面加上逗号和端口号就可以了。例如“……User ID=sa;Initial Catalog=pubs;Data Source=myServer,1200”,就是连接的1200端口的Sql Server服务器了。

具体的描述如下:
症状:
当您使用传输控制协议/Internet 协议 (TCP/IP) 以外的协议时,如果您指定 1433 以外的一个端口用以连接到 Microsoft SQL Server 的一个实例,则 SqlConnection.Open 会失败。
解决方案:
若要解决此问题,请使用 TCP/IP 协议,并使连接字符串中包括"Server=ComputerName, PortNumber"。

Posted on Tuesday, October 18, 2005 9:12:51 PM (China Standard Time, UTC+08:00)  #    Comments [2]
# Tuesday, October 11, 2005
这是一个很好的分页存储过程的解决方案,向大家推荐。
Posted on Tuesday, October 11, 2005 7:54:53 PM (China Standard Time, UTC+08:00)  #    Comments [3]
# Tuesday, August 30, 2005

    有时候,我们在调试ASP.net程序的时候,会很痛苦的碰到。某某组件访问被拒绝。这时候重起IIS,电脑注销都不起作用。

其中最常见的原因是Indexing service服务引起的。解决方法就是停用Indexing service,或配置ASP.net 的临时目录不受Indexing service服务的影响。

配置ASP.net 的临时目录不受Indexing service服务的影响的步骤如下:

1、开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
2、展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
3、在计算机管理的右边我们可以看到配置的索引服务目录。
4、在“目录”节点上右击鼠标,选择“新建”--“目录”
5、在“添加目录”对话框中,路经输入框中输入 ASP.net 的临时文件目录。默认应该是:
c:\<WINDIR>\Microsoft.NET\Framework\<Version Number>\Temporary ASP.NET Files  目录。
<Version Number> 指你要处理的.net版本。
6、在“包含在索引中吗?”选项中,选择“否”
7、单击“确定”按钮
8、在“索引服务”节点上右键单击,重起索引服务即可。

参考以下文档:
http://community.csdn.net/Expert/topic/4075/4075120.xml
http://support.microsoft.com/default.aspx?scid=kb;en-us;329065

Posted on Tuesday, August 30, 2005 11:57:27 AM (China Standard Time, UTC+08:00)  #    Comments [1]
# Thursday, August 25, 2005
在实际开发Asp.Net项目时,程序可能会出现一些异常,那么我们应该怎么去获得尽量多的系统异常,以便后期维护过程能够尽可能重现异常,及时分析、发现和修复Bug。为了处理这个问题,我写了一个小程序来帮助实现我的需求。
Posted on Thursday, August 25, 2005 2:40:44 PM (China Standard Time, UTC+08:00)  #    Comments [0]
# Friday, August 19, 2005

 在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时间在1分钟以上。如果在表的某个字段上做聚簇索引,第一次执行该语句的时间和没有索引的时间差不多,之后执行上述语句,速度很快,在1秒中以内,但当表的记录数发生较大变化后,再执行该语句又会经历一次耗时的过程。而且不是每个表都适合做聚簇索引的,对于数量巨大的表,如果需要经常增删操作,建聚簇索引是一个很不明智的做法,将会极大的影响增删的速度。那么有没有一个比较简单的方法快速获取表的记录总数呢?答案是有的。
 在MS SQL 数据库中每个表都在sysindexes 系统表中拥有至少一条记录,该记录中的rows 字段会定时记录表的记录总数。下面是sysindexes 表的相关记录的含义:

列名      数据类型             描述
id            int                        表ID(如果 indid = 0 或255)。否则为索引所属表的ID
Indid       smallint                索引ID:
                                         0=表
                                         1=聚簇索引
                                         >1=非聚簇索引
                                        255=具有text或image数据的表条目。
rows       int                       基于indid=0 和 indid=1地数据级行数,该值对于indid>1重 复。如果indid=255,rows设置为0。
  
  
当表没有聚簇索引时,Indid = 0 否则为 1。

那么现在大家应该知道如何获取表的记录总数了,只需执行如下语句:
select rows from sysindexes where id = object_id(tablename) and indid in (0,1)

该方法获取表的记录总数的速度非常快,在毫秒级就可以完成,相比select count(*) 要快上数万倍,但是大家在运用该方法是一定要主要,该方法得到的表的总记录数不是一个精确值,原因是MS SQL 并不是实时更新该字段的值,而是定时更新,当从实践来看该值和精确值一般误差不大,如果你希望快速的粗略估算表的大小,建议你采用该方法。如果你希望得到精确值,那么请在执行上述语句前执行DBCC UPDATEUSAGE(DatabaseName,[TABLENAME]) WITH ROW_COUNTS 强制更新该字段的值,但这样第一次更新时会耗费大量的时间,这样做的效果和建有聚簇索引的表 select count (*) 效果相差不大,所以如果你希望相对快速地得到精确的表的记录总数,那么你有两种选择,建聚簇索引或者先DBCC 再使用上述方法。

Posted on Friday, August 19, 2005 10:56:31 AM (China Standard Time, UTC+08:00)  #    Comments [0]
# Thursday, August 18, 2005
用t-sql实现的sql server上千万级数据分页存储过程!
Posted on Thursday, August 18, 2005 9:26:54 AM (China Standard Time, UTC+08:00)  #    Comments [3]
在 web.config 的 <system.web> 节中添加以下代码:
 
<webServices>
  <protocols>
   <add name="HttpGet" />
   <add name="HttpPost" />
   <add name="HttpPostLocalhost" />
   <add name="Documentation" />
  </protocols>
</webServices>
Posted on Thursday, August 18, 2005 9:24:10 AM (China Standard Time, UTC+08:00)  #    Comments [4]
# Saturday, July 30, 2005

Johnny Hughes的Blog上获悉可以从CVS上获得dasBlog 1.8版源码,于是尽早立即下载后将原码中的明显错误去除,将FreeTextBox升级为最新的3.0.5000.5版,然后修改了部分小错误。现将我修改后的带源码的已编译版本共享给大家。
点击这里下载(连接已失效)

Posted on Saturday, July 30, 2005 12:23:50 PM (China Standard Time, UTC+08:00)  #    Comments [6]
# Thursday, July 28, 2005

    在博客园管理员dudu以及博客堂开心就好宝玉的支持和帮助下,烟台.NET 俱乐部也成立啦.
    希望烟台、威海及其周边地区.NET爱好者能积极的加入.
    希望加入此团队的博客园成员可以在本文的评论中回复或EmailTo : qihangnet(AT)hotmail.com。
    请说明你的Blog帐号和所在城市,特长/兴趣(最好详细点)。

    继北京,上海,广州,杭州,郑州,济南等城市成立后。我们烟台也要努力了。
    Let's Do Our Best!

烟台.Net俱乐部博客园团队Blog:http://www.cnblogs.com/team/dotsail.html
烟台.NET俱乐部官方网站:http://qihang.net
烟台.NET俱乐部QQ群:6718824
烟台.NET俱乐部博客园聊天室:http://chat.cnblogs.com/CuteSoft_Client/CuteChat/CH_MainForm.Aspx?ChannelId=45f4536b-39fc-44d5-af07-1715e7b2097e

Posted on Thursday, July 28, 2005 9:31:12 PM (China Standard Time, UTC+08:00)  #    Comments [1]
# Monday, July 11, 2005

为了方便北京及周边地区广大程序员、编程爱好者和高校计算机爱好者更好的交流.Net技术,博客堂、博客园共同发起成立“北京.Net俱乐部”,她是一个非营利性质的、民间组织,旨在为北京及周边地区广大程序员、编程爱好者和高校计算机爱好者提供一个结交朋友、交流技术的平台,通过俱乐部组织的技术交流、会员聚会、培训讲座等系列活动,让俱乐部成员可以面对面的进行技术交流,帮助会员开阔视野、增进知识、积累资源,从而达到提升自我、增强竞争优势的目的。俱乐部将邀请北京地区的.Net技术专家和MVP等,成立专家组,为我们俱乐部的活动提供坚强的技术后盾。

俱乐部于2005年07月23日组织俱乐部的第一次活动,这次活动的主题是“Community Server 开发日”,首先,四位讲师(其中有两位微软资深讲师——开心就好、MVM,博客园——春鱼、博客堂——宝玉)将围绕Community Server(简称CS)这个开源项目对.Net技术的应用,从CS架构、控件、性能、ASP.NET 2.0从CS中吸取的特性几个方面进行讲解和分析,帮助您更好的理解学习.Net。讲课结束后会有讲师的答疑时间,然后将组织大家根据自己感兴趣的话题进行分组讨论交流,讨论结束后每组派代表发言。中间我们会有抽奖活动,会后参与者可选一起FB。本次活动时间、地点,讲课的题目/讲师简介/PPT等将于下周一公布。

此后我们每个月组织一次类似活动,欢迎大家一起加入到我们中来,对于俱乐部及活动有任何意见和建议请您反馈给我们。

场地支持:微软(中国)有限公司平台及开发技术部
加入方式:在您参加俱乐部活动时,即可报名加入俱乐部
俱乐部网站:http://www.cnblogs.com/team/BJDotNetClub.html
QQ群号码:12920817
负责人:
 宝玉(http://blog.joycode.com/dotey)
 dudu(http://dudu.cnblogs.com/)
 Bestcomy(http://bestcomy.cnblogs.com/)

Posted on Monday, July 11, 2005 11:33:58 AM (China Standard Time, UTC+08:00)  #    Comments [0]