摘要: ASP.NET是微软推出的下一代WEB开发工具,其强大的功能立即吸引了一大批WEB开发者投入它的靡下。现在,我们来看看ASP.NET的验证控件,感受ASP.NET的强大功能同时方便我们现在的WEB开发。 WEB开发者特别是ASP开发者,一直对数据验证比较恼火,当你好不容易写出数据提交程序的主体以后,还不得不花大把时间去验证用户的每一个输入是否合法。如果开发者熟悉JavaScript或者VBScript,可以用这些脚本语言轻松实现验证,但是又要考虑用户浏览器是否支持这些脚本语言;如果对这些不是很熟悉或者想支持所有用户浏览器,就必须在ASP程序里面验证,但是这样验证就会增加服务器负担。现在,有了. 阅读全文
posted @ 2012-04-24 13:34 辣椒粉 阅读(1043) 评论(0) 推荐(0)
摘要: 实例 select FHeadSelfB0940 工程项目,v2.Fname 部门,v1.FNumber as 物料代码,v1.FName 物料名称,v1.FModel 规格,t4.FName 计量单位,sum(t1.FQty) 数量,sum(t1.FAmount) 金额 from icstockbillentry t1 left join icstockbill t2 on t1.Finterid=t2.Finterid left join t_icitemcore v1 on t1.FItemID=v1.FItemIDleft join t_Department v2 on t... 阅读全文
posted @ 2012-04-15 18:26 辣椒粉 阅读(704) 评论(0) 推荐(0)
摘要: #region 得到所有本地网络中可使用的SQL服务器列表 ///<summary> /// 得到所有本地网络中可使用的SQL服务器列表 ///</summary> ///<param name="p_strServerList">服务器列表</param> ///<returns></returns> public static bool GetServers(ref string [] p_strServerList) { try { SQLDMO.Application sq... 阅读全文
posted @ 2012-04-12 10:56 辣椒粉 阅读(583) 评论(0) 推荐(0)
摘要: <feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_万一的 Delphi 博客_分类_6a.API 文件处理函数</title><id>http://feed.cnblogs.com/blog/u/30694/category/122469/rss</id><updated>2012-04-12T02:46:30Z</updated><generator>feed.cnblogs.c 阅读全文
posted @ 2012-04-12 10:48 辣椒粉 阅读(256) 评论(0) 推荐(0)
摘要: 从网上找到奇客力大侠的《C# webBrowser禁止在新窗口打开,强制在本窗口打开》文章(http://blog.163.com/da7_1@126/blog/static/104072678201031651754880/),结果发现对重写WebBrowser一窍不通,折腾了2天,又找到百度知道里的一篇问答《在C#中如何重写控件》(http://zhidao.baidu.com/question/48991857.html?fr=qrl&cid=869&index=1&fr2=query),再几经周折才搞定。为了纪念第一个C#程序的艰难问世,现将过程详细记录如下:一 阅读全文
posted @ 2012-04-12 10:23 辣椒粉 阅读(2725) 评论(1) 推荐(2)
摘要: C#自动更新(1)2011-11-18 15:57自动更新思路:在client根据server的配置文件判断是否有新版本,有的话下载更新信息:更新Ip、版本号、更新文件等,下载到本地。再根据ip进行下载到本地临时文件中,下载完成后,提示用户是否更新。如果更新关闭当前系统,启动更新服务将临时文件中的文件替换到要替换的程序目录下,代码如下:client:/// <summary> /// 根据服务器上的数据进行同步数据 /// </summary> /// <param name="sender"></param> /// < 阅读全文
posted @ 2012-04-12 09:31 辣椒粉 阅读(2346) 评论(1) 推荐(0)
摘要: C#多线程学习(六) 互斥对象如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,如果它等待的Mutex对象被释放了,它就自动拥有这个对象,直到它调用Mutex.ReleaseMutex()方法释放这个对象,而在此期间,其他想要获取这个Mutex对象的线程都只有 阅读全文
posted @ 2012-03-31 16:57 辣椒粉 阅读(255) 评论(0) 推荐(0)
摘要: C#多线程学习(五) 多线程的自动管理(定时器)Timer类:设置一个定时器,定时执行用户指定的函数。 定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象:Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的对象,或者为空引用;// 第三个参数:延迟时间——计时开始的时刻距现在的时间,单位是毫秒,指定为“0”表示立即启动计时器;// 第四个参数:定时器的时间间隔——计时开始以后,每隔 阅读全文
posted @ 2012-03-31 16:56 辣椒粉 阅读(279) 评论(0) 推荐(0)
摘要: C#多线程学习(四) 多线程的自动管理(线程池)在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒 这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 2000 以上系统支持,因为其中某些方法调用了只有高版本的Windows才有的API函数。将线程安放在线程池里,需使用ThreadPool.QueueUserWorkIt.. 阅读全文
posted @ 2012-03-31 16:56 辣椒粉 阅读(542) 评论(0) 推荐(0)
摘要: C#多线程学习(三) 生产者和消费者前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:lock(expression) statement_blockexpression代表你希望跟踪的对象,通常是对象引用。 如果你想保护一个类的实例,一般地,你可以使用th 阅读全文
posted @ 2012-03-31 16:54 辣椒粉 阅读(252) 评论(0) 推荐(0)