博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

2011年11月17日

摘要: 复制:y m4n mA-T/mL(c"q3Sq0private void button1_Click(object sender, System.EventArgs e) {2\9eu6\6SM0 // Takes the selected text from a text box and puts it on the clipboard.u:ixpoxYj1@0 if(textBox1.SelectedText != ”")ITPUB个人空间;sq-_\&_!K+]uV,zT Clipboard.SetDataObject(te 阅读全文

posted @ 2011-11-17 09:52 codingsilence 阅读(262) 评论(0) 推荐(0) 编辑

2011年10月9日

摘要: 报表源代码 winform c# -基于DexExpressXtraReport的打印报表,后台生成报表,winform版本,采用C#语言封装,比金质通更强大,现在开放源代码 . 阅读全文

posted @ 2011-10-09 13:35 codingsilence 阅读(1332) 评论(0) 推荐(0) 编辑

2011年8月18日

摘要: "依赖属性"之捅破窗户纸 阅读全文

posted @ 2011-08-18 08:23 codingsilence 阅读(264) 评论(1) 推荐(0) 编辑

2011年8月12日

摘要: publicstaticboolUpdateIsBrowse(decimalid){boolIsSuccess=false;ITransactiontrans=session.BeginTransaction();try{//2修改记录stringsql="updatejkpt_oaxt_weatherforecastsetIsbrowse=1whereWeatherforecastid="+id;ISQLQueryQuery=session.CreateSQLQuery(sql).AddEntity(typeof(JkptOaxtWeatherforecast));Que 阅读全文

posted @ 2011-08-12 15:56 codingsilence 阅读(592) 评论(0) 推荐(0) 编辑

2011年8月11日

摘要: 今天在写SQL查询Oracle中的数据时遇到一个问题。在一般的SQL查询分析器中写好的SQL语句(运行一切正常),扔到用C#写的程序中就报错。错误代码如下:System.Data.OleDb.OleDbException:One or more errors occurred during processing of command.ORA-00911: invalid character at...检查了半天,实在是没找到任何SQL错误的原因,(本来怀疑是字符转码的问题,后来给排除了);最后,终于在网上查到了答案,原来“都是分号惹的祸”!我一般写SQL的时候都喜欢在每个语句结尾加上" 阅读全文

posted @ 2011-08-11 16:06 codingsilence 阅读(431) 评论(0) 推荐(0) 编辑

摘要: 用timer, 没几秒钟调用这个SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); 阅读全文

posted @ 2011-08-11 14:02 codingsilence 阅读(235) 评论(0) 推荐(0) 编辑

2011年8月7日

摘要: ///////////////////////////////////////////////////////////////////////////////// //// Function: CreateVirDir //// //// Purpose: This function creates an IIS Virtual Directory //// /////////////////////////////////////////////////////////////////////////////////function CreateVirDir(IISSite, SiteDir 阅读全文

posted @ 2011-08-07 14:32 codingsilence 阅读(475) 评论(0) 推荐(0) 编辑

2011年8月5日

摘要: 1.AllowCellOverflow 获取或设置单元格里的内容超出时,是否放在邻近的单元格.2.AllowColumnMove获取或设置是否可以移动列.3.AllowDragDrop获取或设置是否可以拖动选定的对象,如行,单元格,选择的区域,里面的值也会跟着变化.4.AllowDragFill获取或设置是否可以进行填充,类似于excel按住鼠标,进行填充,但是没有发现序列的定义.5.AllowEditOverflow返回或设置是否在编辑单元格时,显示超出的部分,AllowCellOverflow 不是编辑状态都显示.6.AllowRowMove返回或设置是否可以移动行,AllowDragDr 阅读全文

posted @ 2011-08-05 14:24 codingsilence 阅读(3709) 评论(0) 推荐(0) 编辑

2011年7月27日

摘要: 比较Double型数据时的注意事项Console.WriteLine(7.88 + 5.00 == 12.88);结果为False,为什么呢?分析:用"=="来比较两个double应该相等的类型,返回真值完全是不确定的。计算机对浮点数的进行计算的原理是只保证必要精度内正确即可,例如:double a=0.9+0.2;那么只能保证小数点后1位这个精度是正确的,计算机计算这个加法的结果a的值可能是1.100000001,也可能是1.100000002也可能就是1.1,也就是说计算机计算后并不保证0.1以下各位得到的都是正确的,所以直接用==进行比较是不可行的。我们知道数据在电脑 阅读全文

posted @ 2011-07-27 17:25 codingsilence 阅读(993) 评论(0) 推荐(0) 编辑

摘要: Control.MousePosition 属性,获取鼠标光标的位置(以屏幕坐标表示)。 Control.PointToClient(Point p)方法,可将指定屏幕点的位置计算成工作区坐标Control.PointToScreen(Point p)方法,可将指定工作区的位置计算成屏幕坐标 阅读全文

posted @ 2011-07-27 11:08 codingsilence 阅读(353) 评论(0) 推荐(0) 编辑

摘要: 《SQL Server 2005从入门到实践(12小时高清晰、交互式视频教学)》第3章SQL Server 2005服务器管理,本章叙述了如何利用SQL Server 2005提供的管理工具对数据库服务器进行配置和管理,搭建一个可用的稳定的高性能的数据库服务环境。本节为大家介绍查看SQL Server日志。 AD: 3.5 通过日志查看服务器的运行情况SQL Server 2005数据库提供了功能强大的日志工具,用于记录数据库系统的运行情况。该工具帮助用户对服务器进行管理,特别是在出现错误的情况下,使用日志查看功能,可以缩小原因的范围,帮助及时确定和解决问题。SQL Server数据库将部分系 阅读全文

posted @ 2011-07-27 09:24 codingsilence 阅读(33383) 评论(0) 推荐(1) 编辑

2011年7月26日

摘要: 要用到windows form 的MainMenu控件。于是想做成动态生成并且动态梆定事件,在网上找了一下没有发现什么好的方法。于是自己来研究一下。以前是做web form的东西,对windows form还真有点陌生的感觉。还好以前用Delphi也做过类似人功能有一点印象。就是用递归去创建菜单。好了不多说了,下面看代码。view sourceprint?001 private void frmMain_Load(object sender, EventArgs e) 002 { 003 CreateMenu(); 004 } 005 006 /// <summary> 007 / 阅读全文

posted @ 2011-07-26 09:54 codingsilence 阅读(889) 评论(0) 推荐(1) 编辑

摘要: 这个案例是一个基于VS2005的WinForm菜单控件的例子,功能是从XML中动态加载菜单数据到MenuTrip控件上。这个案例中用到了XML,反射之类的技术。当然实用价值有限,仅供学习参考之用。首先创建一个WinForm项目,在Form1上放置一个MenuTrip控件,将其命名为MainMenu。在项目中添加一个XML文件,命名为Menu.xml,代码如下:MenuXml1<?xml version="1.0" encoding="utf-8" ?>2<Menus>3 <MainMenu id="10" 阅读全文

posted @ 2011-07-26 08:42 codingsilence 阅读(477) 评论(1) 推荐(2) 编辑

2011年7月21日

摘要: SortedList<T>,SortedSet<T>与SortedDictionary<T>都是我们常用的泛型类型。当T是我们自定义的类型时,往往该类型的默认比较行为不是我们所期望的。例如,我们有如下很老土的Employee类: class Employee { public int Id { get; set; } public String Name { get; set; } public int Age { get; set; } }如果我们想让Employee类型按照Name字段升序排序,一般有两种做法。一种是让Employee实现ICompara 阅读全文

posted @ 2011-07-21 08:38 codingsilence 阅读(236) 评论(0) 推荐(0) 编辑

2011年7月20日

摘要: public static IEnumerable<T> GetControls<T>(this Control control, Func<T, bool> filter) where T : Control { foreach (Control c in control.Controls) { if (c is T && (filter == null || filter(c as T))) { yield return c as T; } foreach (T _t in GetControls<T>(c, filter)) 阅读全文

posted @ 2011-07-20 09:44 codingsilence 阅读(239) 评论(0) 推荐(0) 编辑

摘要: 摘 要:在《csdn开发高手》2004年第03期中的《化功大法——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供了一种解决方案。这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也有相似的VB程序,但在某一技术论坛上提起这种设计方法时,有网友提出:“这种方法好是好,但就是启动速度太慢”。这是因为程序启动时实现DLL释放,然后再加载释放出来的DLL,这个过程会耗费一定的时间。鉴于此问题,经 阅读全文

posted @ 2011-07-20 08:54 codingsilence 阅读(243) 评论(0) 推荐(0) 编辑

2011年7月18日

摘要: .NET 3.5以后,WCF中提供了WebGet的方式,允许通过url的形式进行Web 服务的访问。在以前的代码中,写过多次类似的例子,但总是忘记如何配置,现在将设置步骤记录如下:endpoint通讯协议设置成 webHttpBinding endpoint的行为设置成 <webHttp /> 在接口上加入 WebGet 的Attributes 示例代码如下: web.config文件的配置 <system.serviceModel> <services> <service name="Services.ShowerService" 阅读全文

posted @ 2011-07-18 09:47 codingsilence 阅读(431) 评论(0) 推荐(0) 编辑

摘要: 1.创建WCF服务直接在网站中添加 Ajax-enabled-WCF Services ,命名为AjaxWcfServices.svc代码如下:[ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class HelloWorld { // 添加 [WebGet] 属性以使用 HTTP GET [OperationContract] [WebGet(Re 阅读全文

posted @ 2011-07-18 09:44 codingsilence 阅读(851) 评论(0) 推荐(0) 编辑

摘要: 开源框架、产品非常多,部分框架的相似度也比较高,下面列了一些我在选型时会关注的点,随着使用经验积累再继续补充是否主流 是否有实际案例 是否有理论支持 是否有社区支持 若是服务器技术,是否有运维能力 若是组件技术,是否有源码阅读能力 技术是否容易被大部分团队成员学习和理解ORM:POCO支持 对象状态管理 关系映射 设计侵入性 自动事务控制,管理 SQL支持 文档,源码质量 数据库无关性支持 存储过程支持 SQL跟踪,调优 批处理 多级缓存 开源 contrib丰富 lazyload api粒度,设计优雅容器:注册方式灵活 支持主流模式 api优雅 多级容器,父子容器对象管理是否有内存溢出问题 阅读全文

posted @ 2011-07-18 08:36 codingsilence 阅读(284) 评论(0) 推荐(0) 编辑

2011年7月15日

摘要: 经常碰到32位的DLL什么的不能在64位Windows的IIS上调用,在网上找到这篇文章也许能够解决很多问题。总的思路就是先允许IIS支持32位程序,然后再用.Net Framework注册IIS。Enable 32-bit Server Applications on 64-bit MachinesASP.NET applications that use TX Text Control .NET Server must be compiled for 32-bit platforms (see this article). IIS must be configured to execute 阅读全文

posted @ 2011-07-15 17:39 codingsilence 阅读(165) 评论(0) 推荐(0) 编辑

2011年7月14日

摘要: 获得对象授权的用户可以访问数据库对象及其内容。提示当用户获得处理其他用户表的权限后,在他能够在SQL语句中引用其他用户的表之前,必须有这些表的公用或私用同义词,Oracle可通过它们识别出这些表。假设Jrstocks拥有称为sample_b的表,并允许所有数据库用户访问sample_b。另一个用户coreyan用一条SQL语句查询表sample_b,得到下列错误信息:select*fromsapmle_b; * ERRORatline:1 ORA-00942:tableorviewdoesnotexist 不论授予何种权限,每条授权(grant)语句总是由三部分组成:1)接受者部分是准备获得权 阅读全文

posted @ 2011-07-14 15:51 codingsilence 阅读(2719) 评论(0) 推荐(0) 编辑

摘要: ODP.NET是强命名的,编译时使用的Oracle.DataAccess.dll版本必须和运行时的dll完全一致,才能运行;所以通过替换dll兼容不同版本的ODP.NET是不可行的,只能更换引用(reference)重新编译。ODP.NET和Oracle客户端的版本是严格对应的,版本不匹配,运行时会报错,如ora-12154 。在部署时,要注意这一点。下面是本人测试的一些对应关系 ODP.NET 09 9.2.0.700 -- Oracle Client 9.2.0.1.0 (9i的其他版本未测试) ODP.NET 10 2.102.2.20 -- Oracle Client 10.2.0.3 阅读全文

posted @ 2011-07-14 14:20 codingsilence 阅读(1475) 评论(2) 推荐(0) 编辑

摘要: Oracle.DataAccess.dll有2.X版本和4.X版本,VS2008开发用2.X所需的DLL可以从已安装的client中拷由于微软在.net framework4中会将System.Data.OracleClient.dll deprecated,而且就访问效率和速度而言,System.Data.OracleClient.dll与 Oracle.DataAccess.dll相比,微软的确实没有oracle提供的类库有优势,所以我放弃了使用多年的 System.Data.OracleClient.dll,取而代之的是odp.net。然而odp .net 的优点不止这些,还包括: 1、 阅读全文

posted @ 2011-07-14 14:19 codingsilence 阅读(591) 评论(0) 推荐(0) 编辑

摘要: Oralce版本:11g R21、将oci.dll、ociw32.dll、Oracle.DataAccess.dll、orannzsbb11.dll、oraocci11.dll、oraociicus11.dll、OraOps11w.dll拷到bin目录下2、添加对Oracle.DataAccess.dll的引用3、编写代码,如:view plaincopy to clipboardprint?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingS 阅读全文

posted @ 2011-07-14 14:17 codingsilence 阅读(494) 评论(0) 推荐(0) 编辑

摘要: 这几日就在研究这个问题寻遍网上,也没找到个解决方法只有 在NHibernate里执行存储过程 里面操作NHibernate的一点方法于是动手写成了以下这个类当然,只能保证测试可以通过,可能还有很多问题,要一个一个解决namespace ChAlumna.CastleExt{ using Castle.ActiveRecord; using Castle.ActiveRecord.Framework; using Castle.ActiveRecord.Framework.Config; using System; using NHibernate; using NHibernate.Cfg; 阅读全文

posted @ 2011-07-14 11:11 codingsilence 阅读(304) 评论(0) 推荐(0) 编辑

摘要: 前言:卖麻辣烫归来后实在太累,写代码来消遣,最近搞Winform,感觉标题栏太丑,就想拖拽窗体,自己写了个拖拽控件类,方便自己使用,没啥技术含量,就是想瞎写写,明天打印出来贴在店里,没事盯着,缅怀我逝去的程序员生涯。publicclassDragControl{privateControl_drag=null;privateControl_move=null;privateCursor_oldCursor=null;privateintinitialX;privateintinitialY;privateDragControl(){}publicDragControl(Controldrag. 阅读全文

posted @ 2011-07-14 08:03 codingsilence 阅读(285) 评论(0) 推荐(0) 编辑

2011年7月13日

摘要: 权限所能实现的操作分析ANALYZE ANY 分析数据库中的任何表、簇或索引审计AUDIT ANY 审计数据库中的任何模式对象AUDIT SYSTEM 启用与停用语句和特权的审计选项簇CREATE CLUSTER 在自有的模式中创建一个簇CREATE ANY CLUSTER 在任何一个模式中创建一个簇;操作类似于CREATE ANY TABLE ALTER ANY CLUSTER 改变数据库中的任何一个簇DROP ANY CLUSTER 删除数据库中的任何一个簇数据库ALTER DATA BASE 改变数据库;不管操作系统的特权,经由Oracle把文件添加到操作系统中数据库链接CREATE D 阅读全文

posted @ 2011-07-13 16:35 codingsilence 阅读(369) 评论(0) 推荐(0) 编辑

摘要: 最近遇到了一个让人抓狂的性能问题。生产环境里有一张表的数据量目前达到了 70 万条。结果发现无论是匹配主键的查询还是更新,执行一条语句居然需要 3.5 秒!如果把 NH Prof 中截获的 SQL 语句拿到 PL/SQL Developer 里执行,就只需几十毫秒。一开始还以为是NH的问题,后来发现其实另有隐情。 介绍一下环境先。数据库使用 Oracle10g,所有字符类型的字段都是 varchar2 [1]。所有的主键都使用 Guid,在数据库里是 varchar2(36) 类型,相应的,实体的 Id 属性的类型是 string。ORM 使用的是 NHibernate 2.1.0 和 Fl. 阅读全文

posted @ 2011-07-13 10:55 codingsilence 阅读(192) 评论(0) 推荐(0) 编辑

2011年6月29日

摘要: 预览: 下载 这次clayui给大家带来了比较实用的东西,因为时间比较仓促,就先放出C#版,目前只有13种特效,如果大家对这个比较喜欢的话,请推荐一下,让更多的人能分享到这个,我也会继续更新添加更多特效。 先说明一下,因为本人对C#也不是特别了解,所以可能会出现一些BUG,请大家能够反馈给我。由于演示程序里只是添加了普通的C#控件,目前不是很清楚其他的C#控件,或者一些换肤的东西放上去会不会有问题,不过从原理上来说,这个跟C#的窗口是基本无关的,应该不会有问题。 目前放出的是一个API库,C#通过调用API库的API来实现各种窗口切换效果。 好的,下面来讲解一下如何使用: 首先,当然还是初始化 阅读全文

posted @ 2011-06-29 08:04 codingsilence 阅读(859) 评论(0) 推荐(1) 编辑

2011年6月27日

摘要: oledbparameters 绑定参数占位符必须使用"?",然后根据位置顺序添加参数,参数可以有名称,但是位置要与"?"向匹配。 阅读全文

posted @ 2011-06-27 18:55 codingsilence 阅读(343) 评论(0) 推荐(0) 编辑

摘要: using System;using System.Collections;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using DDTek.Oracle;using System.Configuration;namespace Common{ //// <summary> /// OracleHelper 的摘要说明。 /// </summary> public class OracleHelper { protected OracleC 阅读全文

posted @ 2011-06-27 14:26 codingsilence 阅读(621) 评论(0) 推荐(0) 编辑

2011年6月24日

摘要: 动态代理的原理 原理其实很简单,就是在运行时生成新的对象,姑且叫做T,并使T继承自需要代理的原对象,调用过程实际是调用了新的对象T.通过对T中方法或属性等,添加些自定义的操作,从而实现对原对象访问的封装.动态代理实现(利用castle)castle的动态代理需要下面几步自定义一个拦截器,必须实现 IInterceptor 接口 使用 ProxyGenerator 对象创建代理对象,对象中包含很多方法 对原对象的所有操作,都使用代理对象代替 在拦截器的方法中,加入自定义的操作,比如 记录参数调用日志,异常记录等. 简单拦截器实现代码: SampleInterceptor.csC#代码usingS 阅读全文

posted @ 2011-06-24 12:58 codingsilence 阅读(486) 评论(0) 推荐(0) 编辑

摘要: 久仰ORM大名由来已久,但真正学习ORM才是前两周的事,在网上挑来拣去,终于决定好好学习一下NHibernate(IBatisNet我也比较感兴趣,但是鉴于时间有限,暂时搁置),一来因为其鼻祖Hibernate名气大,二来嘛,因为它是开源的,有机会看看它的源码,呵呵! 上网搜了好久,没搜到几篇文档,没法子只能啃Hibernate的文档慢慢学习了,不久我就发现一个问题:NHibernate好像不能同时操作几个数据库嘛?假设有这样分布式系统,它有N个客户端,一个应用程序服务器,多个数据库服务器,客户端可以根据自己的配置通过应用程序服务器连接到不同的数据库服务器(应该就是听棠描述的所谓多帐套),NH 阅读全文

posted @ 2011-06-24 12:49 codingsilence 阅读(205) 评论(0) 推荐(0) 编辑

2011年6月23日

摘要: 因为有利的开发环境,让我有机会来折腾一下ADO中的SqlBulkCopy这个功能。因为曾经公司做过库迁移,把数据从MSSQL2005迁到ORACLE下,当时本人用C#写了一个迁移工具,因当时对.NET操作数据库只是一般的熟练,没能发挥它的最佳性能和方法,写出来的工具在导数据的时候显示有点慢,后来改用BCP来导,BCP做数据导入还是非常快。时过几个月,心想自己再优化一下算法和方法,让数据迁移更快更方便,于是今天就先折腾一下.NET中的BCP批量导入功能. 测试环境: 1、WINDOWS SERVER 2003 +MSSQL2005(服务器) 2、LINUX+ORACLE 10G(服务器) 3、本 阅读全文

posted @ 2011-06-23 21:45 codingsilence 阅读(309) 评论(0) 推荐(0) 编辑

摘要: 如何做到点击主窗体"X"按钮,能隐藏窗体,而不退出主程序?让我们先来分析窗体所响应的几个事件的先后顺序:一. 当前用户点击窗体"关闭",右上角上的"X"图标时的系统消息的响应顺序是: 1. 系统截获用户的点击消息,可通过重载 WndProc截获; 2. 触发窗体的 FormClosing 事件; 3. 关闭窗体,回收本窗体所占用的相应资源;二. 当在程序中用 this.Close() 关闭窗体时,系统响应的顺序是: 1. 触发窗体的 FormClosing 事件; 2. 关闭窗体,回收本窗体所占用的相应资源;三. 当用户关闭操作系统时 阅读全文

posted @ 2011-06-23 16:17 codingsilence 阅读(365) 评论(0) 推荐(0) 编辑

摘要: private void ReadConfig() { Properties.Settings.Default.Reload(); this.tbFtpIp.Text = Properties.Settings.Default.ftpServer; this.tbFtpPort.Text = Properties.Settings.Default.ftpPort; this.tbUserName.Text = Properties.Settings.Default.ftpUser; this.tbPassword.Text = Properties.Settings.Default.ftpPa 阅读全文

posted @ 2011-06-23 10:53 codingsilence 阅读(1305) 评论(0) 推荐(0) 编辑

2011年6月22日

摘要: InstallShield 2010中制作安装包时,对于集成.net Framework 4以前的版本,如3.5 sp1/3.5/3.0/2.0 sp2/2.0sp1/2.0等提供了现成的prq文件模板,可以直接使用。也可以参考前一篇文章的方法自己下载并修改。 http://www.fengfly.com/plus/view-171672-1.html前天下了最新的vs2010,一些程序升级到 .net Framework 4,在制作安装包时可以用vs自带的打包程序,也可以方便的制作。问题是以前制作的installshield模板弃之不用,有些可惜了,但 Installshileld 2010 阅读全文

posted @ 2011-06-22 14:18 codingsilence 阅读(303) 评论(0) 推荐(0) 编辑

2011年6月21日

摘要: create or replace procedure P_Pagination ( Pindex in number, --页号 从1开始 Psql in varchar2, --查询语句 Psize in number, --每页分多少行 Pcount out number, --共有多少页 v_cur out Sys_Refcursor --返回数据集)AS v_sql VARCHAR2(1000); v_count number; v_Plow number; v_Phei number;Begin-----------取分页总数 ----------- v_sql := 's 阅读全文

posted @ 2011-06-21 16:50 codingsilence 阅读(211) 评论(0) 推荐(0) 编辑

2011年6月20日

摘要: .Net 2.0中,ListView中虽然增加了AutoResizeColumns函数,允许自动对列宽进行调整,但是对于其中的AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent) AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)也就是根据内容自动调整大小的效果却差强人意,因此决定自己动手写一个函数对其允许根据列的内容动态调整大小。下面就是动态调整列宽的函数源码:private void AutoResizeColumnWidth(ListView lv) 阅读全文

posted @ 2011-06-20 18:54 codingsilence 阅读(401) 评论(0) 推荐(0) 编辑

2011年6月19日

摘要: SQL> create table t1(id number,name varchar2(10));Table created.SQL> create table t2(id number,name varchar2(10));Table created.SQL> insert into t1 values(1,'wh');1 row created.SQL> insert into t1 values(2,'wp');1 row created.SQL> insert into t1 values(3,'wj'); 阅读全文

posted @ 2011-06-19 14:05 codingsilence 阅读(1190) 评论(0) 推荐(0) 编辑