﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-欢迎进入HappyQQ的Blog</title><link>http://www.cnblogs.com/HappyQQ/</link><description>成功者找方法，失败者找借口。</description><language>zh-cn</language><lastBuildDate>Mon, 08 Sep 2008 17:46:19 GMT</lastBuildDate><pubDate>Mon, 08 Sep 2008 17:46:19 GMT</pubDate><ttl>60</ttl><item><title>C#多线程学习(一) 多线程的相关概念（转自xugang的blog)</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/08/16/1269327.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Sat, 16 Aug 2008 05:38:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/08/16/1269327.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1269327.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/08/16/1269327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1269327.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1269327.html</trackback:ping><description><![CDATA[<h4><a href="http://www.cnblogs.com/xugang/archive/2008/04/06/1138856.html">C#多线程学习(一) 多线程的相关概念</a></h4> <p><strong></strong> <p><strong>什么是进程？</strong><br>当一个程序开始运行时，它就是一个进程，进程包括运行中的程序和程序所使用到的内存和系统资源。<br>而一个进程又是由多个线程所组成的。<br><strong>什么是线程？</strong><br>线程是程序中的一个执行流，每个线程都有自己的专有寄存器(栈指针、程序计数器等)，但代码区是共享的，即不同的线程可以执行同样的函数。<br><strong>什么是多线程？</strong><br>多线程是指程序中包含多个执行流，即在一个程序中可以同时运行多个不同的线程来执行不同的任务，也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。<br><strong>多线程的好处：</strong><br>可以提高CPU的利用率。在多线程程序中，一个线程必须等待的时候，CPU可以运行其它的线程而不是等待，这样就大大提高了程序的效率。 <br><strong>多线程的不利方面：</strong><br>线程也是程序，所以线程需要占用内存，线程越多占用内存也越多； <br>多线程需要协调和管理，所以需要CPU时间跟踪线程； <br>线程之间对共享资源的访问会相互影响，必须解决竞用共享资源的问题；<br>线程太多会导致控制太复杂，最终可能造成很多Bug； <p>接下来将对C#编程中的多线程机制进行探讨。为了省去创建GUI那些繁琐的步骤，更清晰地逼近线程的本质，接下来的所有程序都是控制台程序，程序最后的Console.ReadLine()是为了使程序中途停下来，以便看清楚执行过程中的输出。 <br>任何程序在执行时，至少有一个主线程。<br>一个直观印象的线程示例： <p>//SystemThread.cs<br>using System;<br>using System.Threading; <br>namespace ThreadTest<br>{<br>class RunIt<br>　　{<br>　　　　[STAThread]<br>static void Main(string[] args)<br>　　　　{<br>　　　　　　Thread.CurrentThread.Name="System Thread";//给当前线程起名为"System Thread"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(Thread.CurrentThread.Name+"'Status:"+Thread.CurrentThread.ThreadState);<br>　　　　　　Console.ReadLine();<br>　　　　}<br>　　}<br>} <p>输出如下： <br>System Thread's Status:Running <br>在这里，我们通过Thread类的静态属性CurrentThread获取了当前执行的线程，对其Name属性赋值“System Thread”，最后还输出了它的当前状态（ThreadState）。<br>所谓静态属性，就是这个类所有对象所公有的属性，不管你创建了多少个这个类的实例，但是类的静态属性在内存中只有一个。很容易理解CurrentThread为什么是静态的——虽然有多个线程同时存在，但是在某一个时刻，CPU只能执行其中一个。 <br>在程序的头部，我们使用了如下命名空间：<br>&nbsp;&nbsp;&nbsp;&nbsp; using System;<br>&nbsp;&nbsp;&nbsp;&nbsp; using System.Threading; <br>在.net framework class library中，所有与多线程机制应用相关的类都是放在System.Threading命名空间中的。如果你想在你的应用程序中使用多线程，就必须包含这个类。<br>我们通过其中提供的Thread类来创建和控制线程，ThreadPool类用于管理线程池等。<br>（此外还提供解决了线程执行安排，死锁，线程间通讯等实际问题的机制。）<br>Thread类有几个至关重要的方法，描述如下：<br>Start()：启动线程；<br>Sleep(int)：静态方法，暂停当前线程指定的毫秒数； <br>Abort()：通常使用该方法来终止一个线程；<br>Suspend()：该方法并不终止未完成的线程，它仅仅挂起线程，以后还可恢复； <br>Resume()：恢复被Suspend()方法挂起的线程的执行； <p><strong></strong> <p><strong>C#多线程学习系列：</strong> <p>C#多线程学习(二) 如何操纵一个线程<br><a href="http://www.cnblogs.com/xugang/archive/2008/04/06/1138841.html">http://www.cnblogs.com/xugang/archive/2008/04/06/1138841.html</a> <p>C#多线程学习(三) 生产者和消费者<br><a href="http://www.cnblogs.com/xugang/archive/2008/03/23/1118594.html">http://www.cnblogs.com/xugang/archive/2008/03/23/1118594.html</a> <p>C#多线程学习(四) 多线程的自动管理(线程池)<br><a href="http://www.cnblogs.com/xugang/archive/2008/03/23/1118584.html">http://www.cnblogs.com/xugang/archive/2008/03/23/1118584.html</a> <p>C#多线程学习(五) 多线程的自动管理(定时器)<br><a href="http://www.cnblogs.com/xugang/archive/2008/03/23/1118537.html">http://www.cnblogs.com/xugang/archive/2008/03/23/1118537.html</a> <p>C#多线程学习(六) 互斥对象<br><a href="http://www.cnblogs.com/xugang/archive/2008/03/23/1118530.html">http://www.cnblogs.com/xugang/archive/2008/03/23/1118530.html</a> <p><strong>相关文章：</strong><br><a href="http://www.cnblogs.com/yizhu2000/archive/2008/01/03/1011958.html">DotNet线程问题解答</a> <p><a href="http://www.cnblogs.com/ZHOULONG/archive/2008/04/06/1139067.html">Visual C#中使用线程</a> <p><a href="http://www.cnblogs.com/VincentWP/archive/2008/06/25/1229104.html">C# 线程资源同步方式总结</a> <p><a href="http://www.cnblogs.com/nokiaguy/archive/2008/07/13/1241817.html">C#线程系列讲座(1)：BeginInvoke和EndInvoke方法</a></p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1269327.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42153/" target="_blank">[新闻]淘宝与微软总部达成首次合作 Silverlight加入店铺</a>]]></description></item><item><title>C#多线程之Thread（转）</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/08/16/1269323.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Sat, 16 Aug 2008 05:34:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/08/16/1269323.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1269323.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/08/16/1269323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1269323.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1269323.html</trackback:ping><description><![CDATA[<h3><a href="http://www.cnblogs.com/fengfeng/archive/2008/07/06/1236954.html">C#多线程之Thread</a></h3> <p>.NET将关于多线程的功能定义在System.Threading名称空间中，因此，如果您的程序要使用多线程，必须引用此命名空间(using System.Threading)。<br>我们知道，在.NET中使用多线程有两种方式：<br>1，使用Thread创建一个新的线程。<br>2，使用ThreadPool。 <p>首先我们先说说和Thread有关的几个概念。<br>1，创建线程和启动线程，如果代码可实现 <p><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">Thread newThread = new Thread(new ThreadStart(Work.DoWork));<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">newThread.Start(); <p>或者 <p><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">Thread newThread = new Thread(new ParameterizedThreadStart(Work.DoWork));<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">newThread.Start(42); <p>ParameterizedThreadStart 此委托在 .NET Framework 2.0 版中是新增的<br>在创建托管的线程时，在该线程上执行的方法将通过一个传递给 Thread 构造函数的 ThreadStart 委托或 ParameterizedThreadStart 委托来表示。<br>在调用 System.Threading.Thread.Start 方法之前，该线程不会开始执行。执行将从 ThreadStart 或 ParameterizedThreadStart 委托表示的方法的第一行开始。<br>ParameterizedThreadStart 委托和 Thread.Start(Object) 方法重载使得将数据传递给线程过程变得简单，但由于可以将任何对象传递给 Thread.Start(Object)，因此这种方法并不是类型安全的。<br>将数据传递给线程过程的一个更可靠的方法是将线程过程和数据字段都放入辅助对象。 <p>下面的代码示例演示通过静态方法和实例方法创建和使用 ParameterizedThreadStart 委托的语法,ThreadStart委托的使用方法和ParameterizedThreadStart一样，<br>唯一的区别在ThreadStart封装的方法不需要参数。(实例来自MSDN) <p><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System;<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Threading;<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">public class Work<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> public static void Main()<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // To start a thread using a shared thread procedure, use<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // the class name and method name when you create the <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // ParameterizedThreadStart delegate.<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> //<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread newThread = new Thread(<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> new ParameterizedThreadStart(Work.DoWork));<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // Use the overload of the Start method that has a<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // parameter of type Object. You can create an object that<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // contains several pieces of data, or you can pass any <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // reference type or value type. The following code passes<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // the integer value 42.<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> //<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newThread.Start(42);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // To start a thread using an instance method for the thread <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // procedure, use the instance variable and method name when <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // you create the ParameterizedThreadStart delegate.<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> //<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Work w = new Work();<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newThread = new Thread(<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> new ParameterizedThreadStart(w.DoMoreWork));<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> // Pass an object containing data for the thread.<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> //<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newThread.Start("The answer.");<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> public static void DoWork(object data)<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Static thread procedure. Data='{0}'",<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"> public void DoMoreWork(object data)<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Instance thread procedure. Data='{0}'",<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">/**//* This code example produces the following output (the order <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp; of the lines might vary):<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">Static thread procedure. Data='42'<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">Instance thread procedure. Data='The answer'<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">*/ <p>2，挂起线程<br>挂起线程分为两种，主动挂起和被动挂起。<br>主动挂起可表示为：<br>Thread.Sleep (Int32) 或 Thread.Sleep (TimeSpan) ，表示将当前调用线程挂起指定的时间。<br>被动挂起表示为： <p><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">Thread newThread = new Thread(new ThreadStart(Work.DoWork));<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">newThread.Start();<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">newThread.Join(); <p>或者 <p><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">Thread.CurrentThread.Join(50); <p>Join表示在继续执行标准的 COM 和 SendMessage 消息泵处理期间，阻止调用线程，直到某个线程终止为止。<br>在[STAThread]指示的Com线程模型中，我们应该使用Thread.CurrentThread.Join(50)这种方式。有一个与之有关的示例，<br><a href="http://blog.joycode.com/xinz/archive/2004/08/22/31313.aspx">Thread.Sleep vs. Thread.CurrentThread.Join</a> <p>3，终止线程<br>在调用 Abort 方法以销毁线程时，公共语言运行库将引发 ThreadAbortException。ThreadAbortException 是一种可捕获的特殊异常，但在 catch 块的结尾处它将自动被再次引发。<br>引发此异常时，运行库将在结束线程前执行所有 finally 块。由于线程可以在 finally 块中执行未绑定计算，或调用 Thread.ResetAbort 来取消中止，所以不能保证线程将完全结束。<br>如果您希望一直等到被中止的线程结束，可以调用 Thread.Join 方法。Join 是一个模块化调用，它直到线程实际停止执行时才返回。<br>注意：在托管可执行文件中的所有前台线程已经结束后，当公共语言运行库 (CLR) 停止后台线程时，它不使用 System.Threading.Thread.Abort。<br>因此，无法使用 ThreadAbortException 来检测 CLR 何时终止后台线程。<br>下面的示例说明如何中止线程。接收 ThreadAbortException 的线程使用 ResetAbort 方法取消中止请求并继续执行。(示例来自MSDN) <p><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System;<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Threading;<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top">using System.Security.Permissions;<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">public class ThreadWork <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> public static void DoWork() <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> try <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> for(int i=0; i&lt;100; i++) <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Thread - working."); <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.Sleep(100);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> catch(ThreadAbortException e) <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Thread - caught ThreadAbortException - resetting.");<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Exception message: {0}", e.Message);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.ResetAbort();<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Thread - still alive and working."); <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.Sleep(1000);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Thread - finished working.");<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">}<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"><br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top">class ThreadAbortTest <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"> public static void Main() <img alt="" src="http://www.cnblogs.com/Images/dot.gif">{<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread myThread = new Thread(myThreadDelegate);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myThread.Start();<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread.Sleep(100);<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Main - aborting my thread.");<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myThread.Abort();<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myThread.Join();<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine("Main ending."); <br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top">&nbsp;&nbsp;&nbsp; }<br><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top">} <p>这段代码产生以下输出： <br> Thread - working.<br> Main - aborting my thread.<br> Thread - caught ThreadAbortException - resetting.<br> Exception message: Thread was being aborted.<br> Thread - still alive and working.<br> Thread - finished working.<br> Main ending. <p>最后还有一点需要说明的是，在.NET Framework 2.0后，Thread对象的Suspend和Resume方法已被摈弃。<br>原因在于使用 Suspend 和 Resume 方法来同步线程的活动。您无法知道挂起线程时它正在执行什么代码。<br>如果您在安全权限评估期间挂起持有锁的线程，则 AppDomain 中的其他线程可能被阻止。<br>如果您在线程正在执行类构造函数时挂起它，则 AppDomain 中试图使用该类的其他线程将被阻止。很容易发生死锁。 <p><img height="1" src="http://www.cnblogs.com/fengfeng/aggbug/1236954.html?type=1&amp;webview=1" width="1"></p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1269323.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42153/" target="_blank">[新闻]淘宝与微软总部达成首次合作 Silverlight加入店铺</a>]]></description></item><item><title>ACCESS数据库C#操作类（SQLHELPER修改版）——转自网上</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269025.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Fri, 15 Aug 2008 14:40:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269025.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1269025.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1269025.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1269025.html</trackback:ping><description><![CDATA[摘要: ACCESS数据库C#操作类（SQLHELPER修改版） 这个是针对ACCESS数据库操作的类，同样也是从SQLHELPER提取而来，分页程序的调用可以参考MSSQL那个类的调用，差不多的，只是提取所有记录的数量的时候有多一个参数，这个需要注意一下！ c# 代码  using System; using System.Text; using System.Collections; using Sy&nbsp;&nbsp;<a href='http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269025.html'>阅读全文</a><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1269025.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42151/" target="_blank">[新闻]苹果9日发布iTunes 8、iPhone 2.1和第四代iPod Nano</a>]]></description></item><item><title>c#.net连接access操作类（转）</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269016.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Fri, 15 Aug 2008 14:33:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269016.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1269016.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/08/15/1269016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1269016.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1269016.html</trackback:ping><description><![CDATA[<p><a href="http://www.cnblogs.com/cjrboy/articles/1161479.html">c#.net连接access操作类</a> <p>1、配置web.config文件：配置<a href="http://www.knowsky.com/sql.asp">数据库</a>连接参数 <p>&lt;configuration&gt;<br> &lt;appSettings/&gt;<br> &lt;connectionStrings&gt;<br>&nbsp; &lt;add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\TeacherSystem\App_Data\db.mdb;Jet OLEDB:Database Pass<a href="http://www.knowsky.com/article.asp?typeid=117">word</a>=123"<br>&nbsp;&nbsp; providerName="System.Data.OleDb" /&gt;<br> &lt;/connectionStrings&gt; <p> 2<br>程序设计开始： <p>1、按要求建立<a href="http://www.knowsky.com/article.asp?typeid=173">Access</a>数据库及数据表 <p>2、编写数据库访问、操作的公用类，此类可以复用到以后开发的任何系统中 <p>（1）、新建一个C# 类库项目， 命名为“Com.LXJ”，设置项目属性：程序集名称、默认命名空间均为“Com.LXJ” <p>（2）、在此项目目录下创建目录Database，新建C# 类文件ConnDbForAccess.cs 在Database目录下。 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 添加引用：System.Web.dll <p>（3）、编写ConnDbForAccess.cs 的代码 <p>&nbsp; using System;<br>using System.Data;<br>using System.Data.OleDb;<br>using System.Web;<br>using System.Web.UI;<br>using System.Configuration; <p>namespace Com.LXJ.Database<br>{<br>&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp; /// conn 的摘要说明。<br>&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp; public class ConnDbForAcccess<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 连接数据库字符串<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private string connectionString; <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 存储数据库连接（保护类，只有由它派生的类才能访问）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected OleDbConnection Connection; <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 构造函数：数据库的默认连接<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ConnDbForAcccess()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string connStr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // connStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString(); //从web.config配置中读取<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionString = connStr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + connStr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // connectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection = new OleDbConnection(connectionString);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 构造函数：带有参数的数据库连接<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="newConnectionString"&gt;&lt;/param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ConnDbForAcccess(string newConnectionString)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + newConnectionString;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionString = newConnectionString;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection = new OleDbConnection(connectionString);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 获得连接字符串<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string ConnectionString<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return connectionString;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 执行SQL语句没有返回结果，如：执行删除、更新、插入等操作<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="strSQL"&gt;&lt;/param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;操作成功标志&lt;/returns&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool ExeSQL(string strSQL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool resultState = false; <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbTransaction myTrans = Connection.BeginTransaction();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbCommand command = new OleDbCommand(strSQL, Connection, myTrans); <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; command.ExecuteNonQuery();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTrans.Commit();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultState = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTrans.Rollback();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resultState = false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return resultState;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 执行SQL语句返回结果到DataReader中<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="strSQL"&gt;&lt;/param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;dataReader&lt;/returns&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private OleDbDataReader ReturnDataReader(string strSQL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbCommand command = new OleDbCommand(strSQL, Connection);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataReader dataReader = command.ExecuteReader();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Close(); <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return dataReader;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 执行SQL语句返回结果到DataSet中<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="strSQL"&gt;&lt;/param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;DataSet&lt;/returns&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public DataSet ReturnDataSet(string strSQL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet dataSet = new DataSet();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataAdapter OleDbDA = new OleDbDataAdapter(strSQL, Connection);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDA.Fill(dataSet, "objDataSet"); <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return dataSet;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 执行一查询语句，同时返回查询结果数目<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name="strSQL"&gt;&lt;/param&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;sqlResultCount&lt;/returns&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int ReturnSqlResultCount(string strSQL)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int sqlResultCount = 0; <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Open();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbCommand command = new OleDbCommand(strSQL, Connection);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OleDbDataReader dataReader = command.ExecuteReader(); <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (dataReader.Read())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sqlResultCount++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataReader.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sqlResultCount = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Connection.Close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return sqlResultCount;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <p>&nbsp;&nbsp;&nbsp; }//<br>}// <p> 好了，数据库访问、数据库操作的公用类完成了，详细代码意义大家自己看吧，这些属于C# 语法知识了，现在可以编译生成项目了，编译完后把项目的dll文件Com.LXJ.dll拷贝到Example项目下的bin目录中，然后在项目 Example中引入Com.LXJ.dll即可。稍后介绍如何使用它，休息一下，喝口水，呵呵.....</p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1269016.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42151/" target="_blank">[新闻]苹果9日发布iTunes 8、iPhone 2.1和第四代iPod Nano</a>]]></description></item><item><title>三百个好用的免费软件名单[转]</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/08/02/1258971.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Sat, 02 Aug 2008 12:29:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/08/02/1258971.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1258971.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/08/02/1258971.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1258971.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1258971.html</trackback:ping><description><![CDATA[<p>&nbsp; <h3>办公</h3> <p><a href="http://www.openoffice.org/">OpenOffice</a> - office suite<br><a href="http://www.software602.com/products/pcs/">PC Suite 602</a> - office suite<br><a href="http://www.abisource.com/">AbiWord</a> - text editor<br><a href="http://www.atlantiswordprocessor.com/">Atlantis Nova</a> - text editor<br><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=048DC840-14E1-467D-8DCA-19D2A8FD7485&amp;displaylang=en">Microsoft PowerPoint Viewer</a> - power point files viewer<br><a href="http://www.adobe.com/products/acrobat/readstep2.html">Adobe Reader</a> - pdf reader<br><a href="http://www.foxitsoftware.com/">Foxit PDF Reader</a> - pdf reader<br><a href="http://sector7g.wurzel6.de/pdfcreator/index_en.htm">PDFCreator</a> - create pdf documents<br><a href="http://www.dbtalk.net/doc-convertor/">Doc Convertor</a> - document convertor<br><a href="http://joshmadison.net/software/convert/">Convert</a> - unit convertor<br><a href="http://www.xyntec.com/converber.htm">Converber</a> - unit convertor<br><a href="http://www.mozilla.org/projects/calendar/sunbird/">Sunbird</a> - calendar/organizer<br><a href="http://www.essentialpim.com/">EssentialPIM Free</a> - calendar/organizer<br><a href="http://www.phraseexpress.com/">PhraseExpress</a> - speed up your writing<br><a href="http://atnotes.free.fr/">ATnotes</a> - create notes on the desktop <h3>解压缩</h3> <p><a href="http://www.7-zip.org/">7-Zip</a> - compression program<br><a href="http://www.izarc.org/">IZArc</a> - compression program<br><a href="http://www.tugzip.com/">TugZIP</a> - compression program<br><a href="http://www.larshederer.homepage.t-online.de/english.htm">CabPack</a> - compression program<br><a href="http://www.legroom.net/modules.php?op=modload&amp;name=Open_Source&amp;file=index&amp;page=software&amp;app=uniextract">Universal Extractor</a> - extract files from any type of archive <h3>互联网</h3> <p><a href="http://www.mozilla.com/firefox/">Firefox</a> - web browser<br><a href="http://www.microsoft.com/windows/ie/default.mspx">Internet Explorer</a>- web browser<br><a href="http://www.maxthon.com/">Maxthon</a> - web browser<br><a href="http://www.opera.com/">Opera</a> - web browser<br><a href="http://www.avantbrowser.com/">Avant Browser</a> - web browser<br><a href="http://www.mozilla.com/thunderbird/">Thunderbird</a> - email client<br><a href="http://www.poptray.org/">PopTray</a> - check for emails<br><a href="http://www.freedownloadmanager.org/">Free Download Manager</a> - download manager<br><a href="http://www.flashget.com/">FlashGet</a> - download manager<br><a href="http://www.wellget.com/">WellGet</a> - download manager<br><a href="http://www.westbyte.com/dm/">Download Master</a> - download manager<br><a href="http://users.ugent.be/%7Ebpuype/wget/">WGET</a> - commandline download manager<br><a href="http://www.httrack.com/">HTTrack</a> - offline browser<br><a href="http://www.webreaper.net/">WebReaper</a> - offline browser<br><a href="http://www.yeahreader.com/">Yeah Reader</a> - RSS reader<br><a href="http://www.curiostudio.com/">GreatNews</a> - RSS reader<br><a href="http://www.rssowl.org/">RSSOwl</a> - RSS reader <h3>P2P</h3> <p><a href="http://www.utorrent.com/">µTorrent</a> - torrent client<br><a href="http://azureus.sourceforge.net/">Azureus</a> - torrent client<br><a href="http://www.bitcomet.com/">BitComet</a> - torrent client<br><a href="http://pingpong-abc.sourceforge.net/">ABC</a> - torrent client<br><a href="http://www.bittornado.com/">BitTornado</a> - torrent client<br><a href="http://www.emule-project.net/">eMule</a> - p2p client<br><a href="http://www.slsknet.org/">SoulSeek</a> - p2p client<br><a href="http://www.shareaza.com/">Shareaza</a> - p2p client<br><a href="http://www.dcpp.net/">DC++</a> - Direct Connect network client<br><a href="http://phoenixlabs.org/pg2/">PeerGuardian</a> - IP blocker <h3>聊天</h3> <p><a href="http://www.miranda-im.org/">Miranda</a> - chat client<br><a href="http://messenger.msn.com/">MSN Messenger</a> - chat client<br><a href="http://messenger.yahoo.com/">Yahoo Messenger</a> - chat client<br><a href="http://www.qip.ru/">QIP</a> - chat client<br><a href="http://gaim.sourceforge.net/">Gaim</a> - chat client<br><a href="http://jajc.jrudevels.org/">JAJC</a> - chat client<br><a href="http://hydrairc.com/">HydraIRC</a> - IRC client<br><a href="http://www.talkative-irc.com/">Talkative IRC</a> - IRC client<br><a href="http://icechat.net/">IceChat</a> - IRC client<br><a href="http://www.skype.com/">Skype</a> - VOIP client<br><a href="http://www.google.com/talk/">Google Talk</a> - VOIP client<br><a href="http://www.voipstunt.com/en/index.html">VoipStunt</a> - VOIP client<br><a href="http://www.gizmoproject.com/">Gizmo</a> - VOIP client<br><a href="http://www.wengo.com/">Wengo</a> - VOIP client <h3>安全</h3> <p><a href="http://free.grisoft.com/">AVG Free</a> - antivirus<br><a href="http://www.avast.com/">Avast Home Free</a> - antivirus<br><a href="http://www.free-av.com/">AntiVir PersonalEdition</a> - antivirus<br><a href="http://www.bitdefender.com/site/Main/view/Download-Free-Products.html?menu_id=21">BitDefender Free</a> - antivirus<br><a href="http://clamwin.com/">ClamWin</a> - antivirus<br><a href="http://www.cyberdefender.com/products.html">CyberDifender</a> - Internet Security Suite<br><a href="http://www.lavasoftusa.com/software/adaware/">Ad-aware</a> - anti-spyware<br><a href="http://www.spybot.info/">Spybot: Search &amp; Destroy</a> - anti-spyware<br><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=435BFCE7-DA2B-4A6A-AFA4-F7F14E605A0D&amp;displaylang=en">Windows Defender</a> - anti-spyware<br><a href="http://www.javacoolsoftware.com/">SpywareBlaster</a> - anti-spyware<br><a href="http://www.spywareterminator.com/">Spyware Terminator</a> - anti-spyware<br><a href="http://www.microsoft.com/technet/sysinternals/utilities/RootkitRevealer.mspx">Tootkit Reveaker</a> - rootkit detection utility<br><a href="http://winpooch.free.fr/page/home.php?lang=en&amp;page=home">Winpooch</a> - system protection<br><a href="http://www.hijackfree.com/en/hijackfree/">HiJack Free</a> - system protection<br><a href="http://www.spywareinfo.com/%7Emerijn/">HighJackThis</a> - hijackers detector and remover<br><a href="http://www.filehippo.com/download_kerio_personal_firewall/?468">Kerio Personal Firewall</a> - firewall<br><a href="http://www.filehippo.com/download_sygate_personal_firewall/">Sygate Personal Firewall</a> - firewall<br><a href="http://www.zonelabs.com/store/content/company/products/znalm/freeDownload.jsp?dc=12bms&amp;ctry=%E2%8C%A9=bg">ZoneAlarm</a> - firewall<br><a href="http://axcrypt.axantum.com/">AxCrypt</a> - file encryption<br><a href="http://www.scar5.com/">Simple File Shredder</a> - securely delete files<br><a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/">PuTTy</a> - SSH client<br><a href="http://keepass.info/">KeePass</a> - password manager<br><a href="http://locknote.steganos.com/">LockNote</a> - password manager<br><a href="http://zeraha.org/dload.php?action=file&amp;file_id=42">nPassword</a> - password manager<br><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4b4aba06-b5f9-4dad-be9d-7b51ec2e5ac9&amp;DisplayLang=en">Microsoft Baseline Security Analyzer</a> - identify security misconfigurations <h3>网络</h3> <p><a href="http://www.hamachi.cc/">Hamachi</a> - VPN client<br><a href="http://www.realvnc.com/">RealVNC</a> - remote control<br><a href="http://ultravnc.sourceforge.net/">UltraVNC</a> - remote control<br><a href="http://www.ethereal.com/">Ethereal</a> - local area network administration<br><a href="http://www.mikrotik.com/thedude.php">The Dude</a> - network administration<br><a href="http://www.wireshark.org/">Wireshark</a> - network administration<br><a href="http://www.angryziber.com/ipscan/">Angry IP Scanner</a> - IP scanner<br><a href="http://www.ks-soft.net/ip-tools.eng/">IP-Tools</a> - IP scanner<br><a href="http://www.nsauditor.com/network_tools/free_port_scanner.html">Free Port Scanner</a> - IP scanner<br><a href="http://readerror.gmxhome.de/">NetMeter</a> - network bandwidth monitoring <h3>服务器</h3> <p><a href="http://filezilla.sourceforge.net/">FileZilla</a> - FTP client<br><a href="http://filezilla.sourceforge.net/">FileZilla Server</a> - FTP server<br><a href="http://www.encrypted-ftp.com/">EFTP</a> - FTP client/server<br><a href="http://www.apachefriends.org/en/xampp-windows.html">XAMPP</a> - integrated server package of Apache, mySQL, PHP and Perl<br><a href="http://www.en.wampserver.com/">WAMP</a> - Apache, PHP5 and MySQL server <h3>音频</h3> <p><a href="http://www.foobar2000.com/">Foobar2000</a> - audio player<br><a href="http://www.winamp.com/">WinAmp</a> - audio player<br><a href="http://www.mpesch3.de/">1by1</a> - audio player<br><a href="http://www.jetaudio.com/">JetAudio</a> - audio player<br><a href="http://support.xmplay.com/">XMPlay</a> - audio player<br><a href="http://xion.r2.com.au/">Xion</a> - audio player<br><a href="http://koti.welho.com/hylinen/apollo/">Apollo</a> - audio player<br><a href="http://www.mediamonkey.com/">MediaMonkey</a> - music organizer<br><a href="http://users.otenet.gr/%7Ejtcliper/tgf/">The GodFather</a> - music organizer<br><a href="http://www.dbpoweramp.com/">dBpowerAMP</a> - audio converter<br><a href="http://audacity.sourceforge.net/">Audacity</a> - audio converter<br><a href="http://www.nch.com.au/wavepad/index_b.html?ref=google&amp;ref2=c18wavepadmp3&amp;ref3=sale">WavePad</a> - audio converter<br><a href="http://www.kreatives.org/kristal/">Kristal Audio Engine</a> - audio editor<br><a href="http://www.exactaudiocopy.de/">Exact Audio Copy</a> - CD ripper<br><a href="http://www.audiograbber.com-us.net/">Audiograbber</a> - CD ripper<br><a href="http://sourceforge.net/projects/cdexos/">CDex</a> - CD ripper<br><a href="http://massid3lib.sourceforge.net/">Mp3 Tag Tools</a> - tag editor<br><a href="http://www.mp3tag.de/en/">Mp3tag</a> - tag editor<br><a href="http://lazorsoftware.com/">Taggin’ MP3</a> - tag editor<br><a href="http://www.monkeysaudio.com/">Monkey’s Audio</a> - APE compressor/decompressor<br><a href="http://www.mptrim.com/">mpTrim</a> - mp3 editor<br><a href="http://www.mptrim.com/WavTrim.html">WavTrim</a> - wave editor<br><a href="http://www.guerillasoft.co.uk/encspot/">EncSpot Basic</a> - analyse mp3 files <h3>视频</h3> <p><a href="http://www.microsoft.com/windows/windowsmedia/default.mspx">Windows Media Player</a> - audio/video player<br><a href="http://www.videolan.org/">VLC</a> - video player<br><a href="http://sourceforge.net/projects/guliverkli/">Media Player Classic</a> - video player<br><a href="http://mv2.czweb.org/">MV2Player</a> - video player<br><a href="http://www.crystalplayer.com/">CrystalPlayer 1.95</a> - video player<br><a href="http://www.inmatrix.com/">Zoom Player</a> - video player<br><a href="http://www.gomplayer.com/">GOM Player</a> - video player<br><a href="http://www.urusoft.net/products.php?lang=1">viPlay</a> - video player<br><a href="http://dsplayer.de/dspweb/">DSPlayer</a> - video player<br><a href="http://www.virtualdub.org/">VirtualDub</a> - video editor<br><a href="http://www.camstudio.org/">CamStudio</a> - video screen recording<br><a href="http://www.bobyte.com/AviSplit/">AviSplit</a> - Avi splitter<br><a href="http://www.geovid.com/Video_mp3_Extractor/">Video mp3 Extractor</a> - rip audio from video files<br><a href="http://www.ipod-video-converter.org/">Free iPod Converter</a> - convert all popular video formats to iPod video<br><a href="http://www.team-mediaportal.com/">MediaPortal</a> - turning your PCinto a Media Center<br><a href="http://members.home.nl/thefilmmachine/">The FilmMachine</a> <h3>图像</h3> <p><a href="http://www.gimp.org/">Gimp</a> - image editor<br><a href="http://www.photofiltre.com/">PhotoFiltre</a> - image editor<br><a href="http://www.getpaint.net/">Paint.net</a> - image editor<br><a href="http://www.ambientdesign.com/artrage.html">ArtRage</a> - image editor<br><a href="http://www.artweaver.de/index.php?id=59,141,0,0,1,0">Artweaver</a> - image editor<br><a href="http://www.irfanview.com/">IrfanView</a> - image viewer<br><a href="http://www.picasa.com/">Picasa</a> - image viewer<br><a href="http://www.xnview.com/">XnView</a> - image viewer<br><a href="http://faststone.org/">FastStone Image Viewer</a> - image viewer<br><a href="http://www.futurix.co.uk/imager/">FuturixImager</a> - image viewer<br><a href="http://www.fookes.com/ezthumbs/">Easy Thumbnails</a> - create thumbnails from images<br><a href="http://www.jojosoftware.de/jojothumb/english/default.htm">JoJoThumb</a> - create thumbnails from images<br><a href="http://www.eunq.com/">iWebAlbum</a> - create web photo albums<br><a href="http://jalbum.net/">JAlbum</a> - create web photo albums<br><a href="http://www.bosseye.com/boxshot/index.htm">3D Box Shot Maker</a> - design quality box shot<br><a href="http://faststone.org/">FastStone Capture</a> - screen capture<br><a href="http://www.ntwind.com/software/winsnap.html">WinSnap</a> - screen capture <h3>3D</h3> <p><a href="http://www.blender.org/cms/Home.2.0.html">Blender3D</a> - 3D renderer<br><a href="http://www.3delight.com/index.htm">3Delight Free</a> - 3D renderer<br><a href="http://sketchup.google.com/product_suf.html">SketchUp</a> - 3D modeling<br><a href="http://usa.autodesk.com/adsk/servlet/index?siteID=123112&amp;id=7639525">Maya Learning Edition</a> - 3D modeling <h3>开发</h3> <p><a href="http://www.autoitscript.com/autoit3/">AutoIt</a> - task automation<br><a href="http://www.autoitscript.com/autoit3/scite/downloads.php">SciTE4AutoIt3</a> - text editor for AutoIt<br><a href="http://www.autohotkey.com/">AutoHotkey</a> - task automation<br><a href="http://www.mpsoftware.dk/">PHP Designer</a> - PHP editor<br><a href="http://notepad-plus.sourceforge.net/">Notepad++</a> - text editor<br><a href="http://context.cx/component/option,com_docman/Itemid,48/">ConTEXT Editor</a> - text editor<br><a href="http://www.pspad.com/en/">PSPad</a> - text editor<br><a href="http://foxeditor.sourceforge.net/">FoxEditor</a> - text editor<br><a href="http://www.crimsoneditor.com/">Crimson Editor</a> - source code editor<br><a href="http://www.elfima.com/enotepad.php">Elfima Notepad</a> - text editor<br><a href="http://www.flos-freeware.ch/notepad2.html">Notepad2</a> - text editor<br><a href="http://www.nvu.com/">Nvu</a> - HTML editor<br><a href="http://www.alleycode.com/">Alleycode</a> - HTML editor<br><a href="http://www.blocknote.net/">BlockNote</a> - web page editor<br><a href="http://www.weaverslave.ws/weaverslave.31.html">Weaverslave</a> - web page editor <h3>CD/DVD</h3> <p><a href="http://www.deepburner.com/">DeepBurner</a> - CD/DVD burner<br><a href="http://www.cdburnerxp.se/">CDBurner XP Pro</a> - CD/DVD burner<br><a href="http://www.burnatonce.net/">BurnAtOnce</a> - CD/DVD burner<br><a href="http://www.nch.com.au/burn/index.html">Express Burn</a> - CD/DVD burner<br><a href="http://www.zillasoft.ws/">Zilla CD-DVD Rip’n’Burn</a> - CD/DVD<br>刻录<br><a href="http://www.imgburn.com/">ImgBurn</a> - ISO, BIN burner<br><a href="http://www.daemon-tools.cc/">Daemon tools</a> - virtual CD/DVD<br><a href="http://en.wikipedia.org/wiki/DVD_Decrypter/">DVD Decrypter</a> - DVD ripper<br><a href="http://www.dvdshrink.org/">DVD Shrink</a> - DVD ripper<br><a href="http://www.cdspeed2000.com/">Nero CD-DVD Speed</a> - CD/DVD info and quality test<br>解码 <p><a href="http://www.headbands.com/gspot/">GSpot</a> - codec information<br><a href="http://ac3filter.net/">AC3Filter</a> - audio codec<br><a href="http://www.koepi.org/">Xvid</a> - video codec<br><a href="http://www.codecguide.com/">QuickTime Alternative</a> - video codec<br><a href="http://www.codecguide.com/">Real Alternative</a> - video codec<br><a href="http://www.free-codecs.com/download/K_Lite_Codec_Pack.htm">K-Lite Codec Pack</a> - all codecs <h3>系统工具</h3> <p><a href="http://ccleaner.com/">CCleaner</a> - system cleaner<br><a href="http://www.xp-antispy.org/">xp-AntiSpy</a> - OS setup<br><a href="http://www.jv16.org/">jv16 Powertools</a> - system utilities<br><a href="http://www.xtort.net/xtort/xpsyspad.php">XP SysPad</a> - system monitoring utility<br><a href="http://www.whatsrunning.net/whatsrunning/">What’s Running</a> - process guard<br><a href="http://www.resplendence.com/">Registrar Lite</a> - registry editor<br><a href="http://www.pkostov.com/wipcfg.html">WinIPConfig</a> - replacement for “ipconfig.exe” and “route.exe”<br><a href="http://ccollomb.free.fr/unlocker/index.htm">Unlocker</a> - file eraser<br><a href="http://www.heidi.ie/eraser/">Eraser</a> - secure file eraser<br><a href="http://www.undelete-plus.com/">Undelete Plus</a> - file recovery<br><a href="http://www.freecommander.com/">freeCommander</a> - file manager<br><a href="http://www.explorerxp.com/">ExplorerXP</a> - file manager<br><a href="http://dff.nazrashid.com/">Duplicate File Finder</a> - find all duplicate files<br><a href="http://www.antp.be/">Ant Renamer</a> - file renaming<br><a href="http://www.den4b.com/">ReNamer</a> - file renaming<br><a href="http://www.vlsoftware.net/exico/">Icons From File</a> - icos extractor<br><a href="http://www.elgorithms.com/downloads/chaosmd5.php">Chaos MD5</a> - MD5 generator<br><a href="http://www.beeblebrox.org/hashtab/">HashTab</a> - MD5, SHA1 and CRC-32 file hashes<br><a href="http://www.rainlendar.net/cms/index.php">Rainlendar Lite</a> - desktop calendar<br><a href="http://www.singerscreations.com/">Weather Watcher</a> - weather firecast<br><a href="http://www.urusoft.net/home.php?lang=1">Subtitle Workshop</a> - subtitles editor<br><a href="http://www.antp.be/software/moviecatalog/">Ant Movie Catalog</a> - movie organizer<br><a href="http://www.lyrasoftware.com/">Disclib</a> - CD organizer<br><a href="http://www.dexpot.de/">Dexpot</a> - virtual desktops<br><a href="http://www.runtime.org/">DriveImage XML</a> - create partition images<br><a href="http://mozbackup.jasnapaka.com/">MozBackup</a> - backup and restore bookmarks, etc.<br><a href="http://www.2brightsparks.com/syncback/">SyncBack</a> - system backup<br><a href="http://www.worldtimeserver.com/atomic-clock/">Atomic Cock Sync</a> - syncronize your clock<br><a href="http://www.ornj.net/citrus/">Citrus Alarm Clock</a> - alarm clock<br><a href="http://www.ntwind.com/software/taskswitchxp.html?">TaskSwitchXP</a> - Alt-Tab replacement<br><a href="http://www.launchy.net/">Launchy</a> - application launcher<br><a href="http://ca.geocities.com/ivanheckman@rogers.com/">allSnap</a> - make all windows snap<br><a href="http://www.microsoft.com/technet/sysinternals/default.mspx">Sysinternals Tools</a> - various system tools<br><a href="http://www.tcbmi.com/strokeit/">StrokeIt</a> - mouse gestures<br><a href="http://netprofiles.danielmilner.com/">Net Profiles</a> - create profiles of your network settings<br><a href="http://www.angusj.com/resourcehacker/">ResourceHacker</a> - view, modify, rename, add, delete<br><a href="http://www.sun.com/">Java Runtime Environment</a> - java for Windows <h3>UI设计</h3> <p><a href="http://www.punksoftware.com/rocketdock">RocketDock</a> - application launcher<br><a href="http://www.avedesk.org/">AveDesk</a> - desktop enhancer<br><a href="http://www.virtualplastic.net/scrow/iphile.html">IconPhile</a> - customize windows’s system icons<br><a href="http://www.stardock.com/products/cursorxp/">CursorXP Free</a> - change mouse cursors<br><a href="http://landvermesser.tripod.com/MacSound.html">MacSound</a> - volume control<br><a href="http://www.neowin.net/forum/index.php?showtopic=157465">LClock</a> - Windows Longhorn clock<br><a href="http://www.majorgeeks.com/download.php?det=2790">Y’z Dock</a> - application launcher<br><a href="http://www.winmatrix.com/forums/index.php?showtopic=1161">Y’z Shadow</a> - shadow effect to the windows<br><a href="http://www.winmatrix.com/forums/index.php?showtopic=1161">Y’z Toolbar</a> - change the toolbar icons in Explorer and Internet Explorer<br><a href="http://www.freewebs.com/nerdcave/taskbarshuffle.htm">Taskbar Shuffle</a> - rearrange the programs on the taskbar by dragging<br><a href="http://www.visualtasktips.com/">Visual Task Tips</a> - thumbnail preview image for each task in the taskbar<br><a href="http://eng.softq.org/badges.htm">Badges</a> - put badges on any folder or file<br><a href="http://eng.softq.org/folderico">Folderico</a> - change icons of the folders<br><a href="http://www.foldermarker.com/">Folder Marker</a> - mark your folders<br><a href="http://eng.softq.org/Folder2mypc">Folder2MyPC</a> - add favourite locations to My Computer<br><a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx">Microsoft TweakUI</a> - system settings<br><a href="http://www.crystalxp.net/bricopack/">BricoPacks</a> - shell packs<br><a href="http://www.trucsenvrac.com/home/shellpacks.html">ShellPacks</a> - shell packs<br><a href="http://www.deviantart.com/deviation/27940418/">Tango Shell Patcher</a> - shell patcher<br><a href="http://xpero.msfn.org/">XPize</a> - GUI enhancer<br><a href="http://www.softpedia.com/get/System/OS-Enhancements/Vista-Transformation-Pack.shtml">Vista Transformation Pack</a> - complete visual style<br><a href="http://www.msfn.org/board/index.php?showtopic=71604">Vista Sound Scheme</a> - Windows Vista sound scheme<br><a href="http://www.softpedia.com/get/Desktop-Enhancements/Themes/Royale-Theme-for-WinXP.shtml">Royale Theme</a> - visual style <h3>硬件检测</h3> <p><a href="http://www.cpuid.com/cpuz.php">CPU-Z</a> - cpu information<br><a href="http://crystalmark.info/software/CrystalCPUID/index-e.html">CrystalCPUID</a> - cpu information<br><a href="http://cbid.amdclub.ru/">Central Brain Identifier</a> - cpu information<br><a href="http://www.lavalys.com/">Everest</a> - system information<br><a href="http://www.sisoftware.co.uk/index.html?dir=&amp;location=home&amp;langx=en&amp;a=">SiSoft Sandra</a> - system information<br><a href="http://www.almico.com/speedfan.php">SpeedFan</a> - hardware monitor<br><a href="http://www.memtest86.com/">Memtest86</a> - memory test<br><a href="http://www.maxtor.com/portal/site/Maxtor/menuitem.3c67e325e0a6b1f6294198b091346068/?channelpath=%2Fen_us%2FSupport%2FSoftware%20Downloads%2FAll%20Downloads&amp;downloadID=22">PowerMax</a> - HDD test<br><a href="http://www.futuremark.com/products/3dmark06/">3Dmark 06</a> - 3D game performance benchmark<br><a href="http://www.softpedia.com/get/System/Benchmarks/AquaMark.shtml">Aquamark</a> - performance benchmark<br><a href="http://www.daionet.gr.jp/%7Emasa/rthdribl/">rthdribl</a> - 3D benchmark<br><a href="http://www.beepa.com/">Fraps</a> - 3D benchmark, fps viewer and screen recorder<br><a href="http://www.mersenne.org/freesoft.htm">Prime 95</a> - cpu benchmarking<br><a href="http://files.extremeoverclocking.com/file.php?f=36">SuperPI</a> - cpu benchmarking<br><a href="http://cpu.rightmark.org/download.shtml">CPU Rightmark</a> - cpu overclock<br><a href="http://www.thecoolest.zerobrains.com/CoreTemp/">Core Temp</a> - cpu temperature<br><a href="http://www.techpowerup.com/downloads/8">ATiTool</a> - video overclock<br><a href="http://www.guru3d.com/article/atitraytools/189/">ATI Tray Tools</a> - Radeon tweaker<br><a href="http://www.3dcenter.org/atuner/">aTuner</a> - GeForce and Radeontweaker<br><a href="http://www.guru3d.com/index.php?page=rivatuner">RivaTuner</a> - video overclock<br><a href="http://www.construnet.hu/nokia/Monitors/TEST/monitor_test.html">Nokia Monitor Test</a> - monitor adjustmets<br><a href="http://udpix.free.fr/">UDPixel</a> - fix dead pixels <h3>游戏</h3> <p><a href="http://www.123freesolitaire.com/">123 Free Solitaire</a> - solitaire games collection<br><a href="http://www.neowin.net/forum/index.php?showtopic=471360">Arcade Pack</a> - classic arcade games<br><a href="http://www.liveforspeed.net/">Live For Speed</a> - online racing simulator<br><a href="http://www.nongnu.org/enigma/">Enigma</a> - puzzle game<br><a href="http://www.freeciv.org/index.php/Freeciv">Freeciv</a> - multiplayer strategy game<br><a href="http://tuxracer.sourceforge.net/">Tux Racer</a> - race down steep, snow-covered mountains <h3>教育</h3> <p><a href="http://www.speqmath.com/">SpeQ Mathematics</a> - mathematics program<br><a href="http://www.gnome.org/projects/dia/">Dia</a> - diagram creation program<br><a href="http://earth.google.com/">Google Earth</a> - explore the world<br><a href="http://sourceforge.net/projects/nasa-exp/">NASA World Wind</a> - 3D virtual globe<br><a href="http://www.shatters.net/celestia/">Celestia</a> - explore the space<br><a href="http://www.stellarium.org/">Stellarium</a> - planetarium <h3>杂类</h3> <p><a href="http://www.nliteos.com/">nLite</a> - Build your own custom Windows disk.<br><a href="http://www.microsoft.com/downloads/details.aspx?familyid=6d58729d-dfa8-40bf-afaf-20bcb7f01cd1&amp;displaylang=en">VirtualPC</a> - create virtual machines<br><a href="http://www.grabmotion.com/">grabMotion</a> - webcam capture<br><a href="http://www.splinterware.com/">iDailyDiary</a> - simple page-for-a-day diary<br><a href="http://www.gold-software.com/PivotStickfigureAnimator-review5412.htm">Pivot Stickfigure Animator</a> - create stick-figure animations<br><a href="http://www.debugmode.com/wink/">Wink</a> - create presentations<br><a href="http://www.scribus.net/">Scribus</a> - professional page layout<br><a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a> - midn mapping software<br><a href="http://windowslivewriter.spaces.live.com/blog/cns%21D85741BB5E0BE8AA%21174.entry">Windows Live Writer</a> - WYSIWYG blog authoring <h3>墙纸</h3> <p><a href="http://blogs.msdn.com/mswanson/articles/wallpaper....">Michael Swanson</a> - 1920 x 1200; 1600 x 1200; amazing wallpapers<br>出处：17Tech.Com</p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1258971.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42150/" target="_blank">[新闻]微软出品8GB蓝色和120GB Zune播放器</a>]]></description></item><item><title>[转载]Top 15 free SQL Injection Scanners</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/08/02/1258967.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Sat, 02 Aug 2008 11:59:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/08/02/1258967.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1258967.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/08/02/1258967.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1258967.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1258967.html</trackback:ping><description><![CDATA[<h4>SQLIer - SQLIer takes a vulnerable URL and attempts to determine all the necessary information to exploit the SQL Injection vulnerability by itself, requiring no user interaction at all. Get SQLIer.<br>Code:<br><a href="http://bcable.net/project.php?sqlier">http://bcable.net/project.php?sqlier</a><br>SQLbftools - SQLbftools is a collection of tools to retrieve MySQL information available using a blind SQL Injection attack. Get SQLbftools.<br>Code:<br><a href="http://www.reversing.org/node/view/11">http://www.reversing.org/node/view/11</a><br>SQL Injection Brute-forcer - SQLibf is a tool for automatizing the work of detecting and exploiting SQL Injection vulnerabilities. SQLibf can work in Visible and Blind SQL Injection. It works by doing simple logic SQL operations to determine the exposure level of the vulnerable application. Get SQLLibf.<br>Code:<br><a href="http://www.open-labs.org/sqlibf19beta1.tar.gz">http://www.open-labs.org/sqlibf19beta1.tar.gz</a><br>SQLBrute - SQLBrute is a tool for brute forcing data out of databases using blind SQL injection vulnerabilities. It supports time based and error based exploit types on Mcft SQL Server, and error based exploit on Oracle. It is written in Python, uses multi-threading, and doesn’t require non-standard libraries. Get SQLBrute.<br>Code:<br><a href="http://www.justinclarke.com/security/sqlbrute.py">http://www.justinclarke.com/security/sqlbrute.py</a><br>BobCat - BobCat is a tool to aid an auditor in taking full advantage of SQL injection vulnerabilities. It is based on AppSecInc research. It can list the linked severs, database schema, and allow the retrieval of data from any table that the current application user has access to. Get BobCat.<br>Code:<br><a href="http://www.northern-monkee.co.uk/projects/bobcat/bobcat.html">http://www.northern-monkee.co.uk/projects/bobcat/bobcat.html</a><br>SQLMap - SQLMap is an automatic blind SQL injection tool, developed in python, capable to perform an active database management system fingerprint, enumerate entire remote databases and much more. The aim of SQLMap is to implement a fully functional database management system tool which takes advantages of web application programming security flaws which lead to SQL injection vulnerabilities. Get SQLMap.<br>Code:<br><a href="http://sqlmap.sourceforge.net/">http://sqlmap.sourceforge.net/</a><br>Absinthe - Absinthe is a GUI-based tool that automates the process of downloading the schema and contents of a database that is vulnerable to Blind SQL Injection. Get Absinthe.<br>Code:<br><a href="http://www.0x90.org/releases/absinthe/download.php">http://www.0x90.org/releases/absinthe/download.php</a><br>SQL Injection Pen-testing Tool - The SQL Injection Tool is a GUI-based utility designed to examine database through vulnerabilities in web-applications. Get SQL Injection Pen-testing tool.<br>Code:<br><a href="http://sqltool.itdefence.ru/indexeng.html">http://sqltool.itdefence.ru/indexeng.html</a><br>SQID - SQL Injection digger (SQLID) is a command line program that looks for SQL injections and common errors in websites. It can perform the follwing operations: look for SQL injection in a web pages and test submit forms for possible SQL injection vulnerabilities. Get SQID.<br>Code:<br><a href="http://sqid.rubyforge.org/">http://sqid.rubyforge.org/</a><br>Blind SQL Injection Perl Tool - bsqlbf is a Perl script that lets auditors retrieve information from web sites that are vulnerable to SQL Injection. Get Blind SQL Injection Perl Tool.<br>Code:<br><a href="http://www.unsec.net/download/bsqlbf.pl">http://www.unsec.net/download/bsqlbf.pl</a><br>SQL Power Injection Injector - SQL Power Injection helps the penetration tester to inject SQL commands on a web page. It’s main strength is its capacity to automate tedious blind SQL injection with several threads. Get SQL Power Injection.<br>Code:<br><a href="http://www.sqlpowerinjector.com/">http://www.sqlpowerinjector.com/</a><br>FJ-Injector Framwork - FG-Injector is a free open source framework designed to help find SQL injection vulnerabilities in web applications. It includes a proxy feature for intercepting and modifying HTTP requests, and an interface for automating SQL injection exploitation. Get FJ-Injector Framework.<br>Code:<br><a href="http://sourceforge.net/project/showfiles.php?group_id=183841">http://sourceforge.net/project/showfiles.php?group_id=183841</a><br>SQLNinja - SQLNinja is a tool to exploit SQL Injection vulnerabilities on a web application that uses Mcft SQL Server as its back-end database. Get SQLNinja.<br>Code:<br><a href="http://sqlninja.sourceforge.net/">http://sqlninja.sourceforge.net/</a><br>Automagic SQL Injector - The Automagic SQL Injector is an automated SQL injection tool designed to help save time on penetration testing. It is only designed to work with vanilla Mcft SQL injection holes where errors are returned. Get Automagic SQL Injector.<br>Code:<br><a href="http://www.indianz.ch/tools/attack/automagic.zip">http://www.indianz.ch/tools/attack/automagic.zip</a><br>NGSS SQL Injector - NGSS SQL Injector exploit vulnerabilities in SQL injection on disparate database servers to gain access to stored data. It currently supports the following databases: Access, DB2, Informix, MSSQL, MySQL, Oracle, Sysbase. Get NGSS SQL Injector.<br>Code:<br><a href="http://www.indianz.ch/tools/attack/sqlinjector.zip">http://www.indianz.ch/tools/attack/sqlinjector.zip</a></h4><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1258967.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42150/" target="_blank">[新闻]微软出品8GB蓝色和120GB Zune播放器</a>]]></description></item><item><title>SQL注入的链接（收藏）</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/07/31/1257689.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Thu, 31 Jul 2008 14:41:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/07/31/1257689.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1257689.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/07/31/1257689.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1257689.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1257689.html</trackback:ping><description><![CDATA[<h6></h6> <p>[&nbsp;&nbsp; ] Blind MySQL injection and database stressing <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.reversing.org/node/view/13 <br>[&nbsp;&nbsp; ] Using SQLBrute to brute force data from a blind SQL injection point <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.justinclarke.com/archives/2006/03/sqlbrute.html <br>[&nbsp;&nbsp; ] Advanced SQL Injection In SQL Server Applications - Chris Anley &lt;chris@ngssoftware.com&gt; [2002] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.nextgenss.com/papers/advanced_sql_injection.pdf <br>[&nbsp;&nbsp; ] (more) Advanced SQL Injection - Chris Anley &lt;chris@ngssoftware.com&gt; [2002-06-18] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.nextgenss.com/papers/more_advanced_sql_injection.pdf <br>[&nbsp;&nbsp; ] SQL Injection, Are Your Web Applications Vulnerable? - SPI Dynamics [2004-10-29] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.securitydocs.com/library/2656 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.securitydocs.com/link.php?action=detail&amp;id=2656&amp;headerfooter=no <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.securitydocs.com/pdf/2656.PDF <br>[&nbsp;&nbsp; ] Manipulating Microsoft SQL Server Using SQL Injection - Cesar Cerrudo &lt;sqlsec@yahoo.com&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.appsecinc.com/presentations/Manipulating_SQL_Server_Using_SQL_Injection.pdf <br>[&nbsp;&nbsp; ] Top 15 free SQL Injection Scanners <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.security-hacks.com/2007/05/18/top-15-free-sql-injection-scanners <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQLIer <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://bcable.net/project.php?sqlier <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sqlbftools <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.reversing.org/node/view/11 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQLibf <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.open-labs.org/ (这里有一些HTTP相关的工具) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL Brute <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.gdssecurity.com/l/t.php <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BobCat <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.northern-monkee.co.uk/index.html <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.northern-monkee.co.uk/projects/bobcat/bobcat.html <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sqlmap <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sqlmap.sourceforge.net/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Absinthe <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.0x90.org/releases/absinthe/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.0x90.org/releases/absinthe/download.php <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL Injection Pentesting TooL <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sqltool.itdefence.ru/indexeng.html <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sqltool.itdefence.ru/setup.rar <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQID <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sqid.rubyforge.org/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://rubyforge.org/frs/?group_id=2617 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL Power Injector <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sourceforge.net/projects/spinj/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.sqlpowerinjector.com/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FG-Injector Framework <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sourceforge.net/projects/injection-fwk/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sqlninja <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://sqlninja.sourceforge.net/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Automagical SQL injector <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.indianz.ch/tools/attack/automagic.zip <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NGSS SQL Injector <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.indianz.ch/tools/attack/sqlinjector.zip <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ISR-sqlget <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.infobyte.com.ar/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.infobyte.com.ar/down/ISR-sqlget-1.0.0.tar.gz <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.infobyte.com.ar/down/ISR-sqlget-Readme.txt <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.infobyte.com.ar/demo/ISR_sqlget_ISS_proventia_bypass.html <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ISR-Form <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.infobyte.com.ar/down/ISR-form-v1.0.tar.gz <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BlindMap <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.c0debreak.net/cb/main.html <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://codebreak.uni.cc/cb/papers/blind.html <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://codebreak.uni.cc/downloads/sql.zip <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://external.c0debreak.net/files/sql.zip <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://w4ck1ng.com/tools/sql/sql.zip <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BaKo's SQL Injection Scanner v2.2 - BaKo [2007-11-29] <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://files.h4ck-y0u.org/3745771 <br>[&nbsp;&nbsp; ] Web application vulnerability scanner / security auditor <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://wapiti.sourceforge.net/ <br>[&nbsp;&nbsp; ] w3af - Web Application Attack and Audit Framework <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://w3af.sourceforge.net/ <br>[&nbsp;&nbsp; ] advanced web server fingerprinting <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.computec.ch/projekte/httprecon/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (有windows版) <br>[&nbsp;&nbsp; ] http://chorizo-scanner.com/ <br>[&nbsp;&nbsp; ] OWASP SQLiX Project <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.owasp.org/index.php/Category:OWASP_SQLiX_Project</p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1257689.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42144/" target="_blank">[新闻]千亿美元市值榜:微软居首移动第二 诺基亚退榜</a>]]></description></item><item><title>收集一下国外黑客网址</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/07/31/1257682.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Thu, 31 Jul 2008 14:34:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/07/31/1257682.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1257682.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/07/31/1257682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1257682.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1257682.html</trackback:ping><description><![CDATA[<p>来源：<a href="http://hi.baidu.com/myvbscript/">http://hi.baidu.com/myvbscript/</a><br>十大再生系统 www.darknet.org.uk/2006/03/10-best-security-live-cd-distros-pen-test-forensics-recovery<br>百大网安工具 www.sectools.org | www.darknet.org.uk/hack-tools-exploits-feeds<br>最新安全漏洞 www.rootkit.com | www.packetstormsecurity.org | www.milw0rm.com | www.securiteam.com<br>安全漏洞扫描 www.nessus.org | www.cirt.net/code/nikto.shtml | www.pentest.it/jikto<br>黑客必杀暗器 www.metasploit.com | www.bindshell.net/tools | www.nirsoft.net<br>XSS 跨站攻击 www.xssed.com | www.gnucitizen.org/xssdb/application.htm | www.bindshell.net/tools/beef | www.portcullis-security.com/16.php | <a href="http://xss-proxy.sourceforge.net">http://xss-proxy.sourceforge.net</a><br>SQL 注入 www.security-hacks.com/2007/05/18/top-15-free-sql-injection-scanners | www.sqlpowerinjector.com<br>僵尸网络 Botnet / 分布式拒绝服务攻击 DDoS<br>IcePack 白金版 <a href="http://forum.xakep.ru/m_961441/tm.htm">http://forum.xakep.ru/m_961441/tm.htm</a> | www.webfile.ru/1504308<br>MPack 0.95 www.google.com/search?q=mpack+0.95+icepack<br>ZUnker 1.4.5 www.tinyurl.com/3co7b8 | www.depositfiles.com/files/1242895<br>无忧傀儡攻击器 2.0 www.1rmb.com/ddos/News.asp?Class=DDOS%B9%A5%BB%F7%B9%A4%BE%DF<br>NetBot_Attacker 1.61 www.hackeroo.com/thread.php?fid=3<br>0day 零时差攻击 / Fuzzers 漏洞检测 www.darknet.org.uk/tag/fuzzing | <a href="http://code.google.com/p/flayer">http://code.google.com/p/flayer</a><br>DDoS 攻防论坛 www.hackeroo.com | www.1rmb.com/forum/index.asp<br>国际黑客论坛 <a href="http://sla.ckers.org">http://sla.ckers.org</a> | <a href="http://forums.remote-exploit.org">http://forums.remote-exploit.org</a></p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1257682.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42144/" target="_blank">[新闻]千亿美元市值榜:微软居首移动第二 诺基亚退榜</a>]]></description></item><item><title>LDAP injection</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/07/20/1246866.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Sat, 19 Jul 2008 16:05:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/07/20/1246866.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1246866.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/07/20/1246866.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1246866.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1246866.html</trackback:ping><description><![CDATA[<h3>LDAP injection</h3> <h5>From OWASP</h5> <p>Jump to: <a href="http://www.owasp.org/index.php/LDAP_injection#column-one">navigation</a>, <a href="http://www.owasp.org/index.php/LDAP_injection#searchInput">search</a> <p>This is an <b><a href="http://www.owasp.org/index.php/Category:Attack">Attack</a></b>. To view all attacks, please see the <a href="http://www.owasp.org/index.php/Category:Attack">Attack Category</a> page.  <p>Last revision: <b>7/2/2008</b> <p><a name="Description"></a> <h4>Description</h4> <p>LDAP Injection is an attack used to exploit web based applications that construct LDAP statements based on user input. When an application fails to properly sanitize user input, it’s possible to modify LDAP statements using a local proxy. This could result in the execution of arbitrary command such as granting permissions to unauthorized queries, and content modification inside the LDAP tree. The same advanced exploitation techniques available in SQL Injection can be similarly applied in LDAP Injection.  <p><a name="Examples"></a> <h4>Examples</h4><a name="Example_1"></a> <h5>Example 1</h5> <p>In a page with a user search form, the following code is responsible to catch input value and generate a LDAP query that will be used in LDAP database. <pre> &lt;input type="text" size=20 name="userName"&gt;Insert the username&lt;/input&gt; 
</pre>
<p>The LDAP query is narrowed down for performance and the underlying code for this function might be the following: <pre> String ldapSearchQuery = "(cn=" + $userName + ")";
 System.out.println(ldapSearchQuery); 
</pre>
<p>Case the variable $userName is not validated, it could be possible accomplish LDAP injection, as follows: <pre>*If a user puts “*” on box search, the system may return all the usernames on the LDAP base
*If a user puts “jonys) (| (password = * ) )”, it will generate the code bellow revealing jonys’ password
( cn = jonys ) ( | (password = * ) )
</pre><a name="Example_2"></a>
<h5>Example 2</h5>
<p>The following vulnerable code is used in an ASP web application which provides login with LDAP data base. On line 11, the variable userName is initialized and validated to check if it’s not in blank. Then, the content of this variable is used to construct a LDAP query used by SearchFilter on line 28. The attacker has the chance specify what will be queried on LDAP server, and see the result on the line 33 to 41, are all results and their attributes are displayed. 
<p>Commented vulnerable asp code: <pre> 
 1.	&lt;html&gt;
 2.	&lt;body&gt;
 3.	&lt;%@ Language=VBScript %&gt;
 4.	&lt;%
 5.	Dim userName
 6.	Dim filter
 7.	Dim ldapObj
 8.		
 9.	Const LDAP_SERVER = "ldap.example"
 10.	
 11.	userName = Request.QueryString("user")
 12.	
 13.	if( userName = "" ) then
 14.	Response.Write("Invalid request. Please specify a valid
 15.	user name")
 16.	Response.End()
 17.	end if
 18.	
 19.	filter = "(uid=" + CStr(userName) + ")" ' searching for the  user entry 
 20.	
 21.	'Creating the LDAP object and setting the base dn
 22.	Set ldapObj = Server.CreateObject("IPWorksASP.LDAP")
 23.	ldapObj.ServerName = LDAP_SERVER
 24.	ldapObj.DN = "ou=people,dc=spilab,dc=com"
 25.	
 26.	'Setting the search filter
 27.	ldapObj.SearchFilter = filter
 28.	
 29.	ldapObj.Search
 30.	
 31.	'Showing the user information
 32.	While ldapObj.NextResult = 1
 33.	Response.Write("&lt;p&gt;")
 34.	
 35.	Response.Write("&lt;b&gt;&lt;u&gt;User information for: " + 
 36.	ldapObj.AttrValue(0) + "&lt;/u&gt;&lt;/b&gt;&lt;br&gt;")
 37.	For i = 0 To ldapObj.AttrCount -1
 38.	Response.Write("&lt;b&gt;" + ldapObj.AttrType(i) +"&lt;/b&gt;: " +
 39.	ldapObj.AttrValue(i) + "&lt;br&gt;" )
 40.	Next
 41.	Response.Write("&lt;/p&gt;")
 42.	Wend
 43.	%&gt;
 44.	&lt;/body&gt;
 45.	&lt;/html&gt;   

</pre>
<p>In the example above, we send the * character in the user parameter which will result in the filter variable in the code to be initialized with (uid=*). The resulting LDAP statement will make the server return any object that contains a uid attribute like username. <pre> http://www.some-site.org/index.asp?user=*  
</pre><a name="Related_Threat_Agents"></a>
<h4>Related <a href="http://www.owasp.org/index.php/Threat_Agents">Threat Agents</a></h4>
<ul>
<li><a href="http://www.owasp.org/index.php?title=Category:Insider&amp;action=edit">Category: Insider</a></li></ul><a name="Related_Attacks"></a>
<h4>Related <a href="http://www.owasp.org/index.php/Attacks">Attacks</a></h4>
<ul>
<li><a href="http://www.owasp.org/index.php/Interpreter_Injection">Interpreter Injection</a>
<li><a href="http://www.owasp.org/index.php/SQL_Injection">SQL Injection</a>
<li><a href="http://www.owasp.org/index.php/Command_Injection">Command Injection</a>
<li><a href="http://www.owasp.org/index.php/Relative_Path_Traversal">Relative Path Traversal</a>
<li><a href="http://www.owasp.org/index.php/Resource_Injection">Resource Injection</a>
<li><a href="http://www.owasp.org/index.php/Path_Manipulation">Path Manipulation</a></li></ul>
<p><a name="Related_Vulnerabilities"></a>
<h4>Related <a href="http://www.owasp.org/index.php/Vulnerabilities">Vulnerabilities</a></h4>
<p><a href="http://www.owasp.org/index.php/Category:Input_Validation_Vulnerability">Category:Input Validation Vulnerability</a>
<p><a name="Related_Controls"></a>
<h4>Related <a href="http://www.owasp.org/index.php/Controls">Controls</a></h4>
<ul>
<li><a href="http://www.owasp.org/index.php/Category:Input_Validation">Category:Input Validation</a></li></ul><a name="References"></a>
<h4>References</h4>
<ul>
<li><a href="http://www.blackhat.com/presentations/bh-europe-08/Alonso-Parada/Whitepaper/bh-eu-08-alonso-parada-WP.pdf">http://www.blackhat.com/presentations/bh-europe-08/Alonso-Parada/Whitepaper/bh-eu-08-alonso-parada-WP.pdf</a></li></ul>
<ul>
<li><a href="http://www.ietf.org/rfc/rfc1960.txt">http://www.ietf.org/rfc/rfc1960.txt</a> A String Representation of LDAP Search Filters (RFC1960) </li></ul>
<ul>
<li><a href="http://www.redbooks.ibm.com/redbooks/SG244986.html">http://www.redbooks.ibm.com/redbooks/SG244986.html</a> IBM RedBooks - Understanding LDAP </li></ul>
<ul>
<li><a href="http://www.webappsec.org/projects/threat/classes/ldap_injection.shtml">http://www.webappsec.org/projects/threat/classes/ldap_injection.shtml</a></li></ul>
<p>Retrieved from "<a href="http://www.owasp.org/index.php/LDAP_injection">http://www.owasp.org/index.php/LDAP_injection</a>"
<p><a href="http://www.owasp.org/index.php/Special:Categories">Categories</a>: <a href="http://www.owasp.org/index.php/Category:OWASP_ASDR_Project">OWASP ASDR Project</a> | <a href="http://www.owasp.org/index.php/Category:Injection">Injection</a> | <a href="http://www.owasp.org/index.php/Category:Attack">Attack</a></p><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1246866.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42142/" target="_blank">[新闻]Google申请“海上数据中心”专利 可能付诸行动</a>]]></description></item><item><title>Code Project精彩系列（转）</title><link>http://www.cnblogs.com/HappyQQ/archive/2008/07/07/1237812.html</link><dc:creator>HappyQQ</dc:creator><author>HappyQQ</author><pubDate>Mon, 07 Jul 2008 15:47:00 GMT</pubDate><guid>http://www.cnblogs.com/HappyQQ/archive/2008/07/07/1237812.html</guid><wfw:comment>http://www.cnblogs.com/HappyQQ/comments/1237812.html</wfw:comment><comments>http://www.cnblogs.com/HappyQQ/archive/2008/07/07/1237812.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/HappyQQ/comments/commentRss/1237812.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/HappyQQ/services/trackbacks/1237812.html</trackback:ping><description><![CDATA[摘要: Applications Crafting a C# forms Editor From scratch http://www.codeproject.com/csharp/SharpFormEditorDemo.asp 建立一个类似C#的环境, 实现控件拖拉，属性 Packet Capture and Analayzer 网络封包截获 http://www.codeproject.com/csh&nbsp;&nbsp;<a href='http://www.cnblogs.com/HappyQQ/archive/2008/07/07/1237812.html'>阅读全文</a><img src ="http://www.cnblogs.com/HappyQQ/aggbug/1237812.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42141/" target="_blank">[新闻]用Google Earth实时追踪人造卫星</a>]]></description></item></channel></rss>